topology.spectral.homMathlib.Topology.Spectral.Hom

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -88,7 +88,7 @@ section
 
 You should extend this class when you extend `spectral_map`. -/
 class SpectralMapClass (F : Type _) (α β : outParam <| Type _) [TopologicalSpace α]
-    [TopologicalSpace β] extends FunLike F α fun _ => β where
+    [TopologicalSpace β] extends DFunLike F α fun _ => β where
   map_spectral (f : F) : IsSpectralMap f
 #align spectral_map_class SpectralMapClass
 -/
@@ -134,7 +134,7 @@ instance : SpectralMapClass (SpectralMap α β) α β
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
 directly. -/
 instance : CoeFun (SpectralMap α β) fun _ => α → β :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 #print SpectralMap.toFun_eq_coe /-
 @[simp]
@@ -146,7 +146,7 @@ theorem toFun_eq_coe {f : SpectralMap α β} : f.toFun = (f : α → β) :=
 #print SpectralMap.ext /-
 @[ext]
 theorem ext {f g : SpectralMap α β} (h : ∀ a, f a = g a) : f = g :=
-  FunLike.ext f g h
+  DFunLike.ext f g h
 #align spectral_map.ext SpectralMap.ext
 -/
 
@@ -167,7 +167,7 @@ theorem coe_copy (f : SpectralMap α β) (f' : α → β) (h : f' = f) : ⇑(f.c
 
 #print SpectralMap.copy_eq /-
 theorem copy_eq (f : SpectralMap α β) (f' : α → β) (h : f' = f) : f.copy f' h = f :=
-  FunLike.ext' h
+  DFunLike.ext' h
 #align spectral_map.copy_eq SpectralMap.copy_eq
 -/
 
@@ -253,7 +253,7 @@ theorem id_comp (f : SpectralMap α β) : (SpectralMap.id β).comp f = f :=
 #print SpectralMap.cancel_right /-
 theorem cancel_right {g₁ g₂ : SpectralMap β γ} {f : SpectralMap α β} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
-  ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h, congr_arg _⟩
+  ⟨fun h => ext <| hf.forall.2 <| DFunLike.ext_iff.1 h, congr_arg _⟩
 #align spectral_map.cancel_right SpectralMap.cancel_right
 -/
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies
 -/
-import Mathbin.Topology.ContinuousFunction.Basic
+import Topology.ContinuousFunction.Basic
 
 #align_import topology.spectral.hom from "leanprover-community/mathlib"@"34ee86e6a59d911a8e4f89b68793ee7577ae79c7"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies
-
-! This file was ported from Lean 3 source module topology.spectral.hom
-! leanprover-community/mathlib commit 34ee86e6a59d911a8e4f89b68793ee7577ae79c7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.ContinuousFunction.Basic
 
+#align_import topology.spectral.hom from "leanprover-community/mathlib"@"34ee86e6a59d911a8e4f89b68793ee7577ae79c7"
+
 /-!
 # Spectral maps
 
Diff
@@ -47,14 +47,18 @@ structure IsSpectralMap (f : α → β) extends Continuous f : Prop where
 #align is_spectral_map IsSpectralMap
 -/
 
+#print IsCompact.preimage_of_isOpen /-
 theorem IsCompact.preimage_of_isOpen (hf : IsSpectralMap f) (h₀ : IsCompact s) (h₁ : IsOpen s) :
     IsCompact (f ⁻¹' s) :=
   hf.isCompact_preimage_of_isOpen h₁ h₀
 #align is_compact.preimage_of_is_open IsCompact.preimage_of_isOpen
+-/
 
+#print IsSpectralMap.continuous /-
 theorem IsSpectralMap.continuous {f : α → β} (hf : IsSpectralMap f) : Continuous f :=
   hf.to_continuous
 #align is_spectral_map.continuous IsSpectralMap.continuous
+-/
 
 #print isSpectralMap_id /-
 theorem isSpectralMap_id : IsSpectralMap (@id α) :=
@@ -62,11 +66,13 @@ theorem isSpectralMap_id : IsSpectralMap (@id α) :=
 #align is_spectral_map_id isSpectralMap_id
 -/
 
+#print IsSpectralMap.comp /-
 theorem IsSpectralMap.comp {f : β → γ} {g : α → β} (hf : IsSpectralMap f) (hg : IsSpectralMap g) :
     IsSpectralMap (f ∘ g) :=
   ⟨hf.Continuous.comp hg.Continuous, fun s hs₀ hs₁ =>
     (hs₁.preimage_of_isOpen hf hs₀).preimage_of_isOpen hg (hs₀.Preimage hf.Continuous)⟩
 #align is_spectral_map.comp IsSpectralMap.comp
+-/
 
 end Unbundled
 
@@ -133,30 +139,40 @@ directly. -/
 instance : CoeFun (SpectralMap α β) fun _ => α → β :=
   FunLike.hasCoeToFun
 
+#print SpectralMap.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe {f : SpectralMap α β} : f.toFun = (f : α → β) :=
   rfl
 #align spectral_map.to_fun_eq_coe SpectralMap.toFun_eq_coe
+-/
 
+#print SpectralMap.ext /-
 @[ext]
 theorem ext {f g : SpectralMap α β} (h : ∀ a, f a = g a) : f = g :=
   FunLike.ext f g h
 #align spectral_map.ext SpectralMap.ext
+-/
 
+#print SpectralMap.copy /-
 /-- Copy of a `spectral_map` with a new `to_fun` equal to the old one. Useful to fix definitional
 equalities. -/
 protected def copy (f : SpectralMap α β) (f' : α → β) (h : f' = f) : SpectralMap α β :=
   ⟨f', h.symm.subst f.spectral'⟩
 #align spectral_map.copy SpectralMap.copy
+-/
 
+#print SpectralMap.coe_copy /-
 @[simp]
 theorem coe_copy (f : SpectralMap α β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' :=
   rfl
 #align spectral_map.coe_copy SpectralMap.coe_copy
+-/
 
+#print SpectralMap.copy_eq /-
 theorem copy_eq (f : SpectralMap α β) (f' : α → β) (h : f' = f) : f.copy f' h = f :=
   FunLike.ext' h
 #align spectral_map.copy_eq SpectralMap.copy_eq
+-/
 
 variable (α)
 
@@ -170,17 +186,21 @@ protected def id : SpectralMap α α :=
 instance : Inhabited (SpectralMap α α) :=
   ⟨SpectralMap.id α⟩
 
+#print SpectralMap.coe_id /-
 @[simp]
 theorem coe_id : ⇑(SpectralMap.id α) = id :=
   rfl
 #align spectral_map.coe_id SpectralMap.coe_id
+-/
 
 variable {α}
 
+#print SpectralMap.id_apply /-
 @[simp]
 theorem id_apply (a : α) : SpectralMap.id α a = a :=
   rfl
 #align spectral_map.id_apply SpectralMap.id_apply
+-/
 
 #print SpectralMap.comp /-
 /-- Composition of `spectral_map`s as a `spectral_map`. -/
@@ -189,47 +209,63 @@ def comp (f : SpectralMap β γ) (g : SpectralMap α β) : SpectralMap α γ :=
 #align spectral_map.comp SpectralMap.comp
 -/
 
+#print SpectralMap.coe_comp /-
 @[simp]
 theorem coe_comp (f : SpectralMap β γ) (g : SpectralMap α β) : (f.comp g : α → γ) = f ∘ g :=
   rfl
 #align spectral_map.coe_comp SpectralMap.coe_comp
+-/
 
+#print SpectralMap.comp_apply /-
 @[simp]
 theorem comp_apply (f : SpectralMap β γ) (g : SpectralMap α β) (a : α) : (f.comp g) a = f (g a) :=
   rfl
 #align spectral_map.comp_apply SpectralMap.comp_apply
+-/
 
+#print SpectralMap.coe_comp_continuousMap' /-
 @[simp]
 theorem coe_comp_continuousMap' (f : SpectralMap β γ) (g : SpectralMap α β) :
     (f.comp g : ContinuousMap α γ) = (f : ContinuousMap β γ).comp g :=
   rfl
 #align spectral_map.coe_comp_continuous_map SpectralMap.coe_comp_continuousMap'
+-/
 
+#print SpectralMap.comp_assoc /-
 @[simp]
 theorem comp_assoc (f : SpectralMap γ δ) (g : SpectralMap β γ) (h : SpectralMap α β) :
     (f.comp g).comp h = f.comp (g.comp h) :=
   rfl
 #align spectral_map.comp_assoc SpectralMap.comp_assoc
+-/
 
+#print SpectralMap.comp_id /-
 @[simp]
 theorem comp_id (f : SpectralMap α β) : f.comp (SpectralMap.id α) = f :=
   ext fun a => rfl
 #align spectral_map.comp_id SpectralMap.comp_id
+-/
 
+#print SpectralMap.id_comp /-
 @[simp]
 theorem id_comp (f : SpectralMap α β) : (SpectralMap.id β).comp f = f :=
   ext fun a => rfl
 #align spectral_map.id_comp SpectralMap.id_comp
+-/
 
+#print SpectralMap.cancel_right /-
 theorem cancel_right {g₁ g₂ : SpectralMap β γ} {f : SpectralMap α β} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
   ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h, congr_arg _⟩
 #align spectral_map.cancel_right SpectralMap.cancel_right
+-/
 
+#print SpectralMap.cancel_left /-
 theorem cancel_left {g : SpectralMap β γ} {f₁ f₂ : SpectralMap α β} (hg : Injective g) :
     g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ :=
   ⟨fun h => ext fun a => hg <| by rw [← comp_apply, h, comp_apply], congr_arg _⟩
 #align spectral_map.cancel_left SpectralMap.cancel_left
+-/
 
 end SpectralMap
 
Diff
@@ -85,7 +85,7 @@ section
 
 You should extend this class when you extend `spectral_map`. -/
 class SpectralMapClass (F : Type _) (α β : outParam <| Type _) [TopologicalSpace α]
-  [TopologicalSpace β] extends FunLike F α fun _ => β where
+    [TopologicalSpace β] extends FunLike F α fun _ => β where
   map_spectral (f : F) : IsSpectralMap f
 #align spectral_map_class SpectralMapClass
 -/
Diff
@@ -47,23 +47,11 @@ structure IsSpectralMap (f : α → β) extends Continuous f : Prop where
 #align is_spectral_map IsSpectralMap
 -/
 
-/- warning: is_compact.preimage_of_is_open -> IsCompact.preimage_of_isOpen is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {s : Set.{u2} β}, (IsSpectralMap.{u1, u2} α β _inst_1 _inst_2 f) -> (IsCompact.{u2} β _inst_2 s) -> (IsOpen.{u2} β _inst_2 s) -> (IsCompact.{u1} α _inst_1 (Set.preimage.{u1, u2} α β f s))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {s : Set.{u1} β}, (IsSpectralMap.{u2, u1} α β _inst_1 _inst_2 f) -> (IsCompact.{u1} β _inst_2 s) -> (IsOpen.{u1} β _inst_2 s) -> (IsCompact.{u2} α _inst_1 (Set.preimage.{u2, u1} α β f s))
-Case conversion may be inaccurate. Consider using '#align is_compact.preimage_of_is_open IsCompact.preimage_of_isOpenₓ'. -/
 theorem IsCompact.preimage_of_isOpen (hf : IsSpectralMap f) (h₀ : IsCompact s) (h₁ : IsOpen s) :
     IsCompact (f ⁻¹' s) :=
   hf.isCompact_preimage_of_isOpen h₁ h₀
 #align is_compact.preimage_of_is_open IsCompact.preimage_of_isOpen
 
-/- warning: is_spectral_map.continuous -> IsSpectralMap.continuous is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β}, (IsSpectralMap.{u1, u2} α β _inst_1 _inst_2 f) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β}, (IsSpectralMap.{u2, u1} α β _inst_1 _inst_2 f) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align is_spectral_map.continuous IsSpectralMap.continuousₓ'. -/
 theorem IsSpectralMap.continuous {f : α → β} (hf : IsSpectralMap f) : Continuous f :=
   hf.to_continuous
 #align is_spectral_map.continuous IsSpectralMap.continuous
@@ -74,12 +62,6 @@ theorem isSpectralMap_id : IsSpectralMap (@id α) :=
 #align is_spectral_map_id isSpectralMap_id
 -/
 
-/- warning: is_spectral_map.comp -> IsSpectralMap.comp is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.{u3} γ] {f : β -> γ} {g : α -> β}, (IsSpectralMap.{u2, u3} β γ _inst_2 _inst_3 f) -> (IsSpectralMap.{u1, u2} α β _inst_1 _inst_2 g) -> (IsSpectralMap.{u1, u3} α γ _inst_1 _inst_3 (Function.comp.{succ u1, succ u2, succ u3} α β γ f g))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u3} β] [_inst_3 : TopologicalSpace.{u2} γ] {f : β -> γ} {g : α -> β}, (IsSpectralMap.{u3, u2} β γ _inst_2 _inst_3 f) -> (IsSpectralMap.{u1, u3} α β _inst_1 _inst_2 g) -> (IsSpectralMap.{u1, u2} α γ _inst_1 _inst_3 (Function.comp.{succ u1, succ u3, succ u2} α β γ f g))
-Case conversion may be inaccurate. Consider using '#align is_spectral_map.comp IsSpectralMap.compₓ'. -/
 theorem IsSpectralMap.comp {f : β → γ} {g : α → β} (hf : IsSpectralMap f) (hg : IsSpectralMap g) :
     IsSpectralMap (f ∘ g) :=
   ⟨hf.Continuous.comp hg.Continuous, fun s hs₀ hs₁ =>
@@ -151,57 +133,27 @@ directly. -/
 instance : CoeFun (SpectralMap α β) fun _ => α → β :=
   FunLike.hasCoeToFun
 
-/- warning: spectral_map.to_fun_eq_coe -> SpectralMap.toFun_eq_coe is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : SpectralMap.{u1, u2} α β _inst_1 _inst_2}, Eq.{max (succ u1) (succ u2)} (α -> β) (SpectralMap.toFun.{u1, u2} α β _inst_1 _inst_2 f) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : SpectralMap.{u2, u1} α β _inst_1 _inst_2}, Eq.{max (succ u2) (succ u1)} (α -> β) (SpectralMap.toFun.{u2, u1} α β _inst_1 _inst_2 f) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u2 u1, u2, u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u2, u1} α β _inst_1 _inst_2)) f)
-Case conversion may be inaccurate. Consider using '#align spectral_map.to_fun_eq_coe SpectralMap.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe {f : SpectralMap α β} : f.toFun = (f : α → β) :=
   rfl
 #align spectral_map.to_fun_eq_coe SpectralMap.toFun_eq_coe
 
-/- warning: spectral_map.ext -> SpectralMap.ext is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : SpectralMap.{u1, u2} α β _inst_1 _inst_2} {g : SpectralMap.{u1, u2} α β _inst_1 _inst_2}, (forall (a : α), Eq.{succ u2} β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) f a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) g a)) -> (Eq.{max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) f g)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : SpectralMap.{u2, u1} α β _inst_1 _inst_2} {g : SpectralMap.{u2, u1} α β _inst_1 _inst_2}, (forall (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u2 u1, u2, u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u2, u1} α β _inst_1 _inst_2)) f a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u2 u1, u2, u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u2, u1} α β _inst_1 _inst_2)) g a)) -> (Eq.{max (succ u2) (succ u1)} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) f g)
-Case conversion may be inaccurate. Consider using '#align spectral_map.ext SpectralMap.extₓ'. -/
 @[ext]
 theorem ext {f g : SpectralMap α β} (h : ∀ a, f a = g a) : f = g :=
   FunLike.ext f g h
 #align spectral_map.ext SpectralMap.ext
 
-/- warning: spectral_map.copy -> SpectralMap.copy is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] (f : SpectralMap.{u1, u2} α β _inst_1 _inst_2) (f' : α -> β), (Eq.{max (succ u1) (succ u2)} (α -> β) f' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) f)) -> (SpectralMap.{u1, u2} α β _inst_1 _inst_2)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] (f : SpectralMap.{u1, u2} α β _inst_1 _inst_2) (f' : α -> β), (Eq.{max (succ u1) (succ u2)} (α -> β) f' (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u2} α β _inst_1 _inst_2)) f)) -> (SpectralMap.{u1, u2} α β _inst_1 _inst_2)
-Case conversion may be inaccurate. Consider using '#align spectral_map.copy SpectralMap.copyₓ'. -/
 /-- Copy of a `spectral_map` with a new `to_fun` equal to the old one. Useful to fix definitional
 equalities. -/
 protected def copy (f : SpectralMap α β) (f' : α → β) (h : f' = f) : SpectralMap α β :=
   ⟨f', h.symm.subst f.spectral'⟩
 #align spectral_map.copy SpectralMap.copy
 
-/- warning: spectral_map.coe_copy -> SpectralMap.coe_copy is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] (f : SpectralMap.{u1, u2} α β _inst_1 _inst_2) (f' : α -> β) (h : Eq.{max (succ u1) (succ u2)} (α -> β) f' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) f)), Eq.{max (succ u1) (succ u2)} (α -> β) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) (SpectralMap.copy.{u1, u2} α β _inst_1 _inst_2 f f' h)) f'
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] (f : SpectralMap.{u2, u1} α β _inst_1 _inst_2) (f' : α -> β) (h : Eq.{max (succ u2) (succ u1)} (α -> β) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u2 u1, u2, u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u2, u1} α β _inst_1 _inst_2)) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : α), (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u2 u1, u2, u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u2, u1} α β _inst_1 _inst_2)) (SpectralMap.copy.{u2, u1} α β _inst_1 _inst_2 f f' h)) f'
-Case conversion may be inaccurate. Consider using '#align spectral_map.coe_copy SpectralMap.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (f : SpectralMap α β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' :=
   rfl
 #align spectral_map.coe_copy SpectralMap.coe_copy
 
-/- warning: spectral_map.copy_eq -> SpectralMap.copy_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] (f : SpectralMap.{u1, u2} α β _inst_1 _inst_2) (f' : α -> β) (h : Eq.{max (succ u1) (succ u2)} (α -> β) f' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) f)), Eq.{max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (SpectralMap.copy.{u1, u2} α β _inst_1 _inst_2 f f' h) f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] (f : SpectralMap.{u2, u1} α β _inst_1 _inst_2) (f' : α -> β) (h : Eq.{max (succ u2) (succ u1)} (α -> β) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u2 u1, u2, u1} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u2, u1} α β _inst_1 _inst_2)) f)), Eq.{max (succ u2) (succ u1)} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) (SpectralMap.copy.{u2, u1} α β _inst_1 _inst_2 f f' h) f
-Case conversion may be inaccurate. Consider using '#align spectral_map.copy_eq SpectralMap.copy_eqₓ'. -/
 theorem copy_eq (f : SpectralMap α β) (f' : α → β) (h : f' = f) : f.copy f' h = f :=
   FunLike.ext' h
 #align spectral_map.copy_eq SpectralMap.copy_eq
@@ -218,12 +170,6 @@ protected def id : SpectralMap α α :=
 instance : Inhabited (SpectralMap α α) :=
   ⟨SpectralMap.id α⟩
 
-/- warning: spectral_map.coe_id -> SpectralMap.coe_id is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α], Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (SpectralMap.{u1, u1} α α _inst_1 _inst_1) (fun (_x : SpectralMap.{u1, u1} α α _inst_1 _inst_1) => α -> α) (SpectralMap.hasCoeToFun.{u1, u1} α α _inst_1 _inst_1) (SpectralMap.id.{u1} α _inst_1)) (id.{succ u1} α)
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (SpectralMap.{u1, u1} α α _inst_1 _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => α) _x) (SpectralMapClass.toFunLike.{u1, u1, u1} (SpectralMap.{u1, u1} α α _inst_1 _inst_1) α α _inst_1 _inst_1 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u1} α α _inst_1 _inst_1)) (SpectralMap.id.{u1} α _inst_1)) (id.{succ u1} α)
-Case conversion may be inaccurate. Consider using '#align spectral_map.coe_id SpectralMap.coe_idₓ'. -/
 @[simp]
 theorem coe_id : ⇑(SpectralMap.id α) = id :=
   rfl
@@ -231,12 +177,6 @@ theorem coe_id : ⇑(SpectralMap.id α) = id :=
 
 variable {α}
 
-/- warning: spectral_map.id_apply -> SpectralMap.id_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (SpectralMap.{u1, u1} α α _inst_1 _inst_1) (fun (_x : SpectralMap.{u1, u1} α α _inst_1 _inst_1) => α -> α) (SpectralMap.hasCoeToFun.{u1, u1} α α _inst_1 _inst_1) (SpectralMap.id.{u1} α _inst_1) a) a
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (SpectralMap.{u1, u1} α α _inst_1 _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => α) _x) (SpectralMapClass.toFunLike.{u1, u1, u1} (SpectralMap.{u1, u1} α α _inst_1 _inst_1) α α _inst_1 _inst_1 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u1} α α _inst_1 _inst_1)) (SpectralMap.id.{u1} α _inst_1) a) a
-Case conversion may be inaccurate. Consider using '#align spectral_map.id_apply SpectralMap.id_applyₓ'. -/
 @[simp]
 theorem id_apply (a : α) : SpectralMap.id α a = a :=
   rfl
@@ -249,91 +189,43 @@ def comp (f : SpectralMap β γ) (g : SpectralMap α β) : SpectralMap α γ :=
 #align spectral_map.comp SpectralMap.comp
 -/
 
-/- warning: spectral_map.coe_comp -> SpectralMap.coe_comp is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.{u3} γ] (f : SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (g : SpectralMap.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u3)} ((fun (_x : SpectralMap.{u1, u3} α γ _inst_1 _inst_3) => α -> γ) (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 f g)) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) (fun (_x : SpectralMap.{u1, u3} α γ _inst_1 _inst_3) => α -> γ) (SpectralMap.hasCoeToFun.{u1, u3} α γ _inst_1 _inst_3) (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 f g)) (Function.comp.{succ u1, succ u2, succ u3} α β γ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (fun (_x : SpectralMap.{u2, u3} β γ _inst_2 _inst_3) => β -> γ) (SpectralMap.hasCoeToFun.{u2, u3} β γ _inst_2 _inst_3) f) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) g))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u3} β] [_inst_3 : TopologicalSpace.{u2} γ] (f : SpectralMap.{u3, u2} β γ _inst_2 _inst_3) (g : SpectralMap.{u1, u3} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} (forall (a : α), (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => γ) a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => γ) _x) (SpectralMapClass.toFunLike.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α γ _inst_1 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u2} α γ _inst_1 _inst_3)) (SpectralMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 f g)) (Function.comp.{succ u1, succ u3, succ u2} α β γ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β (fun (_x : β) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : β) => γ) _x) (SpectralMapClass.toFunLike.{max u3 u2, u3, u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u3, u2} β γ _inst_2 _inst_3)) f) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u3} α β _inst_1 _inst_2)) g))
-Case conversion may be inaccurate. Consider using '#align spectral_map.coe_comp SpectralMap.coe_compₓ'. -/
 @[simp]
 theorem coe_comp (f : SpectralMap β γ) (g : SpectralMap α β) : (f.comp g : α → γ) = f ∘ g :=
   rfl
 #align spectral_map.coe_comp SpectralMap.coe_comp
 
-/- warning: spectral_map.comp_apply -> SpectralMap.comp_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.{u3} γ] (f : SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (g : SpectralMap.{u1, u2} α β _inst_1 _inst_2) (a : α), Eq.{succ u3} γ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) (fun (_x : SpectralMap.{u1, u3} α γ _inst_1 _inst_3) => α -> γ) (SpectralMap.hasCoeToFun.{u1, u3} α γ _inst_1 _inst_3) (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 f g) a) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (fun (_x : SpectralMap.{u2, u3} β γ _inst_2 _inst_3) => β -> γ) (SpectralMap.hasCoeToFun.{u2, u3} β γ _inst_2 _inst_3) f (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) g a))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u3} β] [_inst_3 : TopologicalSpace.{u2} γ] (f : SpectralMap.{u3, u2} β γ _inst_2 _inst_3) (g : SpectralMap.{u1, u3} α β _inst_1 _inst_2) (a : α), Eq.{succ u2} ((fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => γ) a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => γ) _x) (SpectralMapClass.toFunLike.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α γ _inst_1 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u2} α γ _inst_1 _inst_3)) (SpectralMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 f g) a) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β (fun (_x : β) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : β) => γ) _x) (SpectralMapClass.toFunLike.{max u3 u2, u3, u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u3, u2} β γ _inst_2 _inst_3)) f (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u3} α β _inst_1 _inst_2)) g a))
-Case conversion may be inaccurate. Consider using '#align spectral_map.comp_apply SpectralMap.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (f : SpectralMap β γ) (g : SpectralMap α β) (a : α) : (f.comp g) a = f (g a) :=
   rfl
 #align spectral_map.comp_apply SpectralMap.comp_apply
 
-/- warning: spectral_map.coe_comp_continuous_map -> SpectralMap.coe_comp_continuousMap' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.{u3} γ] (f : SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (g : SpectralMap.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u3)} (ContinuousMap.{u1, u3} α γ _inst_1 _inst_3) ((fun (a : Sort.{max (succ u1) (succ u3)}) (b : Sort.{max (succ u1) (succ u3)}) [self : HasLiftT.{max (succ u1) (succ u3), max (succ u1) (succ u3)} a b] => self.0) (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) (ContinuousMap.{u1, u3} α γ _inst_1 _inst_3) (HasLiftT.mk.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) (ContinuousMap.{u1, u3} α γ _inst_1 _inst_3) (CoeTCₓ.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) (ContinuousMap.{u1, u3} α γ _inst_1 _inst_3) (ContinuousMap.hasCoeT.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) α γ _inst_1 _inst_3 (SpectralMapClass.toContinuousMapClass.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) α γ _inst_1 _inst_3 (SpectralMap.spectralMapClass.{u1, u3} α γ _inst_1 _inst_3))))) (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 f g)) (ContinuousMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 ((fun (a : Sort.{max (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u3)}) [self : HasLiftT.{max (succ u2) (succ u3), max (succ u2) (succ u3)} a b] => self.0) (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (ContinuousMap.{u2, u3} β γ _inst_2 _inst_3) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (ContinuousMap.{u2, u3} β γ _inst_2 _inst_3) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (ContinuousMap.{u2, u3} β γ _inst_2 _inst_3) (ContinuousMap.hasCoeT.{max u2 u3, u2, u3} (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMapClass.toContinuousMapClass.{max u2 u3, u2, u3} (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMap.spectralMapClass.{u2, u3} β γ _inst_2 _inst_3))))) f) ((fun (a : Sort.{max (succ u1) (succ u2)}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{max (succ u1) (succ u2), max (succ u1) (succ u2)} a b] => self.0) (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (ContinuousMap.{u1, u2} α β _inst_1 _inst_2) (HasLiftT.mk.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (ContinuousMap.{u1, u2} α β _inst_1 _inst_2) (CoeTCₓ.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (ContinuousMap.{u1, u2} α β _inst_1 _inst_2) (ContinuousMap.hasCoeT.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMapClass.toContinuousMapClass.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.spectralMapClass.{u1, u2} α β _inst_1 _inst_2))))) g))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u3} β] [_inst_3 : TopologicalSpace.{u2} γ] (f : SpectralMap.{u3, u2} β γ _inst_2 _inst_3) (g : SpectralMap.{u1, u3} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} (ContinuousMap.{u1, u2} α γ _inst_1 _inst_3) (ContinuousMap.mk.{u1, u2} α γ _inst_1 _inst_3 (FunLike.coe.{succ (max u1 u2), succ u1, succ u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α (fun (a : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => γ) a) (ContinuousMapClass.toFunLike.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α γ _inst_1 _inst_3 (SpectralMapClass.toContinuousMapClass.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α γ _inst_1 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u2} α γ _inst_1 _inst_3))) (SpectralMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 f g)) (ContinuousMapClass.map_continuous.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α γ _inst_1 _inst_3 (SpectralMapClass.toContinuousMapClass.{max u1 u2, u1, u2} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) α γ _inst_1 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u2} α γ _inst_1 _inst_3)) (SpectralMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 f g))) (ContinuousMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 (ContinuousMap.mk.{u3, u2} β γ _inst_2 _inst_3 (FunLike.coe.{succ (max u3 u2), succ u3, succ u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β (fun (a : β) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : β) => γ) a) (ContinuousMapClass.toFunLike.{max u3 u2, u3, u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMapClass.toContinuousMapClass.{max u3 u2, u3, u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u3, u2} β γ _inst_2 _inst_3))) f) (ContinuousMapClass.map_continuous.{max u3 u2, u3, u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMapClass.toContinuousMapClass.{max u3 u2, u3, u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u3, u2} β γ _inst_2 _inst_3)) f)) (ContinuousMap.mk.{u1, u3} α β _inst_1 _inst_2 (FunLike.coe.{succ (max u1 u3), succ u1, succ u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α (fun (a : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) a) (ContinuousMapClass.toFunLike.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMapClass.toContinuousMapClass.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u3} α β _inst_1 _inst_2))) g) (ContinuousMapClass.map_continuous.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMapClass.toContinuousMapClass.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u3} α β _inst_1 _inst_2)) g)))
-Case conversion may be inaccurate. Consider using '#align spectral_map.coe_comp_continuous_map SpectralMap.coe_comp_continuousMap'ₓ'. -/
 @[simp]
 theorem coe_comp_continuousMap' (f : SpectralMap β γ) (g : SpectralMap α β) :
     (f.comp g : ContinuousMap α γ) = (f : ContinuousMap β γ).comp g :=
   rfl
 #align spectral_map.coe_comp_continuous_map SpectralMap.coe_comp_continuousMap'
 
-/- warning: spectral_map.comp_assoc -> SpectralMap.comp_assoc is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.{u3} γ] [_inst_4 : TopologicalSpace.{u4} δ] (f : SpectralMap.{u3, u4} γ δ _inst_3 _inst_4) (g : SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (h : SpectralMap.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u4)} (SpectralMap.{u1, u4} α δ _inst_1 _inst_4) (SpectralMap.comp.{u1, u2, u4} α β δ _inst_1 _inst_2 _inst_4 (SpectralMap.comp.{u2, u3, u4} β γ δ _inst_2 _inst_3 _inst_4 f g) h) (SpectralMap.comp.{u1, u3, u4} α γ δ _inst_1 _inst_3 _inst_4 f (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 g h))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u4}} {δ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.{u4} γ] [_inst_4 : TopologicalSpace.{u3} δ] (f : SpectralMap.{u4, u3} γ δ _inst_3 _inst_4) (g : SpectralMap.{u2, u4} β γ _inst_2 _inst_3) (h : SpectralMap.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u3)} (SpectralMap.{u1, u3} α δ _inst_1 _inst_4) (SpectralMap.comp.{u1, u2, u3} α β δ _inst_1 _inst_2 _inst_4 (SpectralMap.comp.{u2, u4, u3} β γ δ _inst_2 _inst_3 _inst_4 f g) h) (SpectralMap.comp.{u1, u4, u3} α γ δ _inst_1 _inst_3 _inst_4 f (SpectralMap.comp.{u1, u2, u4} α β γ _inst_1 _inst_2 _inst_3 g h))
-Case conversion may be inaccurate. Consider using '#align spectral_map.comp_assoc SpectralMap.comp_assocₓ'. -/
 @[simp]
 theorem comp_assoc (f : SpectralMap γ δ) (g : SpectralMap β γ) (h : SpectralMap α β) :
     (f.comp g).comp h = f.comp (g.comp h) :=
   rfl
 #align spectral_map.comp_assoc SpectralMap.comp_assoc
 
-/- warning: spectral_map.comp_id -> SpectralMap.comp_id is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] (f : SpectralMap.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (SpectralMap.comp.{u1, u1, u2} α α β _inst_1 _inst_1 _inst_2 f (SpectralMap.id.{u1} α _inst_1)) f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] (f : SpectralMap.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) (SpectralMap.comp.{u2, u2, u1} α α β _inst_1 _inst_1 _inst_2 f (SpectralMap.id.{u2} α _inst_1)) f
-Case conversion may be inaccurate. Consider using '#align spectral_map.comp_id SpectralMap.comp_idₓ'. -/
 @[simp]
 theorem comp_id (f : SpectralMap α β) : f.comp (SpectralMap.id α) = f :=
   ext fun a => rfl
 #align spectral_map.comp_id SpectralMap.comp_id
 
-/- warning: spectral_map.id_comp -> SpectralMap.id_comp is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] (f : SpectralMap.{u1, u2} α β _inst_1 _inst_2), Eq.{max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (SpectralMap.comp.{u1, u2, u2} α β β _inst_1 _inst_2 _inst_2 (SpectralMap.id.{u2} β _inst_2) f) f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] (f : SpectralMap.{u2, u1} α β _inst_1 _inst_2), Eq.{max (succ u2) (succ u1)} (SpectralMap.{u2, u1} α β _inst_1 _inst_2) (SpectralMap.comp.{u2, u1, u1} α β β _inst_1 _inst_2 _inst_2 (SpectralMap.id.{u1} β _inst_2) f) f
-Case conversion may be inaccurate. Consider using '#align spectral_map.id_comp SpectralMap.id_compₓ'. -/
 @[simp]
 theorem id_comp (f : SpectralMap α β) : (SpectralMap.id β).comp f = f :=
   ext fun a => rfl
 #align spectral_map.id_comp SpectralMap.id_comp
 
-/- warning: spectral_map.cancel_right -> SpectralMap.cancel_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.{u3} γ] {g₁ : SpectralMap.{u2, u3} β γ _inst_2 _inst_3} {g₂ : SpectralMap.{u2, u3} β γ _inst_2 _inst_3} {f : SpectralMap.{u1, u2} α β _inst_1 _inst_2}, (Function.Surjective.{succ u1, succ u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) (fun (_x : SpectralMap.{u1, u2} α β _inst_1 _inst_2) => α -> β) (SpectralMap.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2) f)) -> (Iff (Eq.{max (succ u1) (succ u3)} (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 g₁ f) (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 g₂ f)) (Eq.{max (succ u2) (succ u3)} (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) g₁ g₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u3} β] [_inst_3 : TopologicalSpace.{u2} γ] {g₁ : SpectralMap.{u3, u2} β γ _inst_2 _inst_3} {g₂ : SpectralMap.{u3, u2} β γ _inst_2 _inst_3} {f : SpectralMap.{u1, u3} α β _inst_1 _inst_2}, (Function.Surjective.{succ u1, succ u3} α β (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : α) => β) _x) (SpectralMapClass.toFunLike.{max u1 u3, u1, u3} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) α β _inst_1 _inst_2 (SpectralMap.instSpectralMapClassSpectralMap.{u1, u3} α β _inst_1 _inst_2)) f)) -> (Iff (Eq.{max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) (SpectralMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 g₁ f) (SpectralMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 g₂ f)) (Eq.{max (succ u3) (succ u2)} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) g₁ g₂))
-Case conversion may be inaccurate. Consider using '#align spectral_map.cancel_right SpectralMap.cancel_rightₓ'. -/
 theorem cancel_right {g₁ g₂ : SpectralMap β γ} {f : SpectralMap α β} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
   ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h, congr_arg _⟩
 #align spectral_map.cancel_right SpectralMap.cancel_right
 
-/- warning: spectral_map.cancel_left -> SpectralMap.cancel_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] [_inst_3 : TopologicalSpace.{u3} γ] {g : SpectralMap.{u2, u3} β γ _inst_2 _inst_3} {f₁ : SpectralMap.{u1, u2} α β _inst_1 _inst_2} {f₂ : SpectralMap.{u1, u2} α β _inst_1 _inst_2}, (Function.Injective.{succ u2, succ u3} β γ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (SpectralMap.{u2, u3} β γ _inst_2 _inst_3) (fun (_x : SpectralMap.{u2, u3} β γ _inst_2 _inst_3) => β -> γ) (SpectralMap.hasCoeToFun.{u2, u3} β γ _inst_2 _inst_3) g)) -> (Iff (Eq.{max (succ u1) (succ u3)} (SpectralMap.{u1, u3} α γ _inst_1 _inst_3) (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 g f₁) (SpectralMap.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 g f₂)) (Eq.{max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α β _inst_1 _inst_2) f₁ f₂))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u3} β] [_inst_3 : TopologicalSpace.{u2} γ] {g : SpectralMap.{u3, u2} β γ _inst_2 _inst_3} {f₁ : SpectralMap.{u1, u3} α β _inst_1 _inst_2} {f₂ : SpectralMap.{u1, u3} α β _inst_1 _inst_2}, (Function.Injective.{succ u3, succ u2} β γ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β (fun (_x : β) => (fun (x._@.Mathlib.Topology.Spectral.Hom._hyg.348 : β) => γ) _x) (SpectralMapClass.toFunLike.{max u3 u2, u3, u2} (SpectralMap.{u3, u2} β γ _inst_2 _inst_3) β γ _inst_2 _inst_3 (SpectralMap.instSpectralMapClassSpectralMap.{u3, u2} β γ _inst_2 _inst_3)) g)) -> (Iff (Eq.{max (succ u1) (succ u2)} (SpectralMap.{u1, u2} α γ _inst_1 _inst_3) (SpectralMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 g f₁) (SpectralMap.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 g f₂)) (Eq.{max (succ u1) (succ u3)} (SpectralMap.{u1, u3} α β _inst_1 _inst_2) f₁ f₂))
-Case conversion may be inaccurate. Consider using '#align spectral_map.cancel_left SpectralMap.cancel_leftₓ'. -/
 theorem cancel_left {g : SpectralMap β γ} {f₁ f₂ : SpectralMap α β} (hg : Injective g) :
     g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ :=
   ⟨fun h => ext fun a => hg <| by rw [← comp_apply, h, comp_apply], congr_arg _⟩
Diff
@@ -143,10 +143,7 @@ def toContinuousMap (f : SpectralMap α β) : ContinuousMap α β :=
 instance : SpectralMapClass (SpectralMap α β) α β
     where
   coe := SpectralMap.toFun
-  coe_injective' f g h := by
-    cases f
-    cases g
-    congr
+  coe_injective' f g h := by cases f; cases g; congr
   map_spectral f := f.spectral'
 
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`

Changes in mathlib4

mathlib3
mathlib4
chore: tidy various files (#11135)
Diff
@@ -180,12 +180,12 @@ theorem comp_apply (f : SpectralMap β γ) (g : SpectralMap α β) (a : α) : (f
 
 @[simp]
 theorem coe_comp_continuousMap (f : SpectralMap β γ) (g : SpectralMap α β) :
-    (f ∘ g)= (f : ContinuousMap β γ) ∘ (g: ContinuousMap α β) := by
+    f ∘ g = (f : ContinuousMap β γ) ∘ (g: ContinuousMap α β) :=
    rfl
 
 -- Porting note: removed `simp` from this and added lemma above to address `simpNF` lint
 theorem coe_comp_continuousMap' (f : SpectralMap β γ) (g : SpectralMap α β) :
-    (f.comp g : ContinuousMap α γ) = (f : ContinuousMap β γ).comp g := by
+    (f.comp g : ContinuousMap α γ) = (f : ContinuousMap β γ).comp g :=
   rfl
 #align spectral_map.coe_comp_continuous_map SpectralMap.coe_comp_continuousMap'
 
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
@@ -183,7 +183,7 @@ theorem coe_comp_continuousMap (f : SpectralMap β γ) (g : SpectralMap α β) :
     (f ∘ g)= (f : ContinuousMap β γ) ∘ (g: ContinuousMap α β) := by
    rfl
 
--- porting note: removed `simp` from this and added lemma above to address `simpNF` lint
+-- Porting note: removed `simp` from this and added lemma above to address `simpNF` lint
 theorem coe_comp_continuousMap' (f : SpectralMap β γ) (g : SpectralMap α β) :
     (f.comp g : ContinuousMap α γ) = (f : ContinuousMap β γ).comp g := by
   rfl
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

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

Zulip thread

Important changes

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

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

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

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

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

Similarly, MyEquivClass should take EquivLike as a parameter.

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

Remaining issues

Slower (failing) search

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

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

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

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

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

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

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

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

simp not firing sometimes

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

Missing instances due to unification failing

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

Workaround for issues

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

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

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

Diff
@@ -75,8 +75,8 @@ section
 /-- `SpectralMapClass F α β` states that `F` is a type of spectral maps.
 
 You should extend this class when you extend `SpectralMap`. -/
-class SpectralMapClass (F : Type*) (α β : outParam <| Type*) [TopologicalSpace α]
-  [TopologicalSpace β] extends DFunLike F α fun _ => β where
+class SpectralMapClass (F α β : Type*) [TopologicalSpace α] [TopologicalSpace β]
+    [FunLike F α β] : Prop where
   /-- statement that `F` is a type of spectral maps-/
   map_spectral (f : F) : IsSpectralMap f
 #align spectral_map_class SpectralMapClass
@@ -89,11 +89,11 @@ attribute [simp] map_spectral
 
 -- See note [lower instance priority]
 instance (priority := 100) SpectralMapClass.toContinuousMapClass [TopologicalSpace α]
-    [TopologicalSpace β] [SpectralMapClass F α β] : ContinuousMapClass F α β :=
+    [TopologicalSpace β] [FunLike F α β] [SpectralMapClass F α β] : ContinuousMapClass F α β :=
   { ‹SpectralMapClass F α β› with map_continuous := fun f => (map_spectral f).continuous }
 #align spectral_map_class.to_continuous_map_class SpectralMapClass.toContinuousMapClass
 
-instance [TopologicalSpace α] [TopologicalSpace β] [SpectralMapClass F α β] :
+instance [TopologicalSpace α] [TopologicalSpace β] [FunLike F α β] [SpectralMapClass F α β] :
     CoeTC F (SpectralMap α β) :=
   ⟨fun f => ⟨_, map_spectral f⟩⟩
 
@@ -109,17 +109,12 @@ def toContinuousMap (f : SpectralMap α β) : ContinuousMap α β :=
   ⟨_, f.spectral'.continuous⟩
 #align spectral_map.to_continuous_map SpectralMap.toContinuousMap
 
-instance : SpectralMapClass (SpectralMap α β) α β
-    where
+instance instFunLike : FunLike (SpectralMap α β) α β where
   coe := SpectralMap.toFun
   coe_injective' f g h := by cases f; cases g; congr
-  map_spectral f := f.spectral'
 
--- Porting note: These CoeFun instances are not desirable in Lean 4.
---/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`
---directly. -/
---instance : CoeFun (SpectralMap α β) fun _ => α → β :=
---  DFunLike.hasCoeToFun
+instance : SpectralMapClass (SpectralMap α β) α β where
+  map_spectral f := f.spectral'
 
 @[simp]
 theorem toFun_eq_coe {f : SpectralMap α β} : f.toFun = (f : α → β) :=
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -76,7 +76,7 @@ section
 
 You should extend this class when you extend `SpectralMap`. -/
 class SpectralMapClass (F : Type*) (α β : outParam <| Type*) [TopologicalSpace α]
-  [TopologicalSpace β] extends FunLike F α fun _ => β where
+  [TopologicalSpace β] extends DFunLike F α fun _ => β where
   /-- statement that `F` is a type of spectral maps-/
   map_spectral (f : F) : IsSpectralMap f
 #align spectral_map_class SpectralMapClass
@@ -116,10 +116,10 @@ instance : SpectralMapClass (SpectralMap α β) α β
   map_spectral f := f.spectral'
 
 -- Porting note: These CoeFun instances are not desirable in Lean 4.
---/-- Helper instance for when there's too many metavariables to apply `FunLike.hasCoeToFun`
+--/-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`
 --directly. -/
 --instance : CoeFun (SpectralMap α β) fun _ => α → β :=
---  FunLike.hasCoeToFun
+--  DFunLike.hasCoeToFun
 
 @[simp]
 theorem toFun_eq_coe {f : SpectralMap α β} : f.toFun = (f : α → β) :=
@@ -128,7 +128,7 @@ theorem toFun_eq_coe {f : SpectralMap α β} : f.toFun = (f : α → β) :=
 
 @[ext]
 theorem ext {f g : SpectralMap α β} (h : ∀ a, f a = g a) : f = g :=
-  FunLike.ext f g h
+  DFunLike.ext f g h
 #align spectral_map.ext SpectralMap.ext
 
 /-- Copy of a `SpectralMap` with a new `toFun` equal to the old one. Useful to fix definitional
@@ -143,7 +143,7 @@ theorem coe_copy (f : SpectralMap α β) (f' : α → β) (h : f' = f) : ⇑(f.c
 #align spectral_map.coe_copy SpectralMap.coe_copy
 
 theorem copy_eq (f : SpectralMap α β) (f' : α → β) (h : f' = f) : f.copy f' h = f :=
-  FunLike.ext' h
+  DFunLike.ext' h
 #align spectral_map.copy_eq SpectralMap.copy_eq
 
 variable (α)
@@ -213,7 +213,7 @@ theorem id_comp (f : SpectralMap α β) : (SpectralMap.id β).comp f = f :=
 @[simp]
 theorem cancel_right {g₁ g₂ : SpectralMap β γ} {f : SpectralMap α β} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
-  ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h,
+  ⟨fun h => ext <| hf.forall.2 <| DFunLike.ext_iff.1 h,
    fun a => of_eq (congrFun (congrArg comp a) f)⟩
 #align spectral_map.cancel_right SpectralMap.cancel_right
 
chore: fix some cases in names (#7469)

And fix some names in comments where this revealed issues

Diff
@@ -21,7 +21,7 @@ compact open set is compact open.
 
 ## TODO
 
-Once we have `SpectralSpace`, `IsSpectralMap` should move to `topology.spectral.basic`.
+Once we have `SpectralSpace`, `IsSpectralMap` should move to `Mathlib.Topology.Spectral.Basic`.
 -/
 
 
@@ -116,7 +116,7 @@ instance : SpectralMapClass (SpectralMap α β) α β
   map_spectral f := f.spectral'
 
 -- Porting note: These CoeFun instances are not desirable in Lean 4.
---/-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
+--/-- Helper instance for when there's too many metavariables to apply `FunLike.hasCoeToFun`
 --directly. -/
 --instance : CoeFun (SpectralMap α β) fun _ => α → β :=
 --  FunLike.hasCoeToFun
chore: @[simp] cancel_(right|left) (#6300)

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

Diff
@@ -210,12 +210,14 @@ theorem id_comp (f : SpectralMap α β) : (SpectralMap.id β).comp f = f :=
   ext fun _a => rfl
 #align spectral_map.id_comp SpectralMap.id_comp
 
+@[simp]
 theorem cancel_right {g₁ g₂ : SpectralMap β γ} {f : SpectralMap α β} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
   ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h,
    fun a => of_eq (congrFun (congrArg comp a) f)⟩
 #align spectral_map.cancel_right SpectralMap.cancel_right
 
+@[simp]
 theorem cancel_left {g : SpectralMap β γ} {f₁ f₂ : SpectralMap α β} (hg : Injective g) :
     g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ :=
   ⟨fun h => ext fun a => hg <| by rw [← comp_apply, h, comp_apply], congr_arg _⟩
chore: remove unused simps (#6632)

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

Diff
@@ -191,7 +191,7 @@ theorem coe_comp_continuousMap (f : SpectralMap β γ) (g : SpectralMap α β) :
 -- porting note: removed `simp` from this and added lemma above to address `simpNF` lint
 theorem coe_comp_continuousMap' (f : SpectralMap β γ) (g : SpectralMap α β) :
     (f.comp g : ContinuousMap α γ) = (f : ContinuousMap β γ).comp g := by
-    simp only [@coe_comp]; rfl
+  rfl
 #align spectral_map.coe_comp_continuous_map SpectralMap.coe_comp_continuousMap'
 
 @[simp]
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
@@ -27,7 +27,7 @@ Once we have `SpectralSpace`, `IsSpectralMap` should move to `topology.spectral.
 
 open Function OrderDual
 
-variable {F α β γ δ : Type _}
+variable {F α β γ δ : Type*}
 
 section Unbundled
 
@@ -63,7 +63,7 @@ theorem IsSpectralMap.comp {f : β → γ} {g : α → β} (hf : IsSpectralMap f
 end Unbundled
 
 /-- The type of spectral maps from `α` to `β`. -/
-structure SpectralMap (α β : Type _) [TopologicalSpace α] [TopologicalSpace β] where
+structure SpectralMap (α β : Type*) [TopologicalSpace α] [TopologicalSpace β] where
   /-- function between topological spaces-/
   toFun : α → β
   /-- proof that `toFun` is a spectral map-/
@@ -75,7 +75,7 @@ section
 /-- `SpectralMapClass F α β` states that `F` is a type of spectral maps.
 
 You should extend this class when you extend `SpectralMap`. -/
-class SpectralMapClass (F : Type _) (α β : outParam <| Type _) [TopologicalSpace α]
+class SpectralMapClass (F : Type*) (α β : outParam <| Type*) [TopologicalSpace α]
   [TopologicalSpace β] extends FunLike F α fun _ => β where
   /-- statement that `F` is a type of spectral maps-/
   map_spectral (f : F) : IsSpectralMap f
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,14 +2,11 @@
 Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies
-
-! This file was ported from Lean 3 source module topology.spectral.hom
-! leanprover-community/mathlib commit 4c19a16e4b705bf135cf9a80ac18fcc99c438514
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.ContinuousFunction.Basic
 
+#align_import topology.spectral.hom from "leanprover-community/mathlib"@"4c19a16e4b705bf135cf9a80ac18fcc99c438514"
+
 /-!
 # Spectral maps
 
chore: cleanup whitespace (#5988)

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

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

Diff
@@ -188,7 +188,7 @@ theorem comp_apply (f : SpectralMap β γ) (g : SpectralMap α β) (a : α) : (f
 
 @[simp]
 theorem coe_comp_continuousMap (f : SpectralMap β γ) (g : SpectralMap α β) :
-    (f ∘ g)= (f : ContinuousMap β γ) ∘  (g: ContinuousMap α β) := by
+    (f ∘ g)= (f : ContinuousMap β γ) ∘ (g: ContinuousMap α β) := by
    rfl
 
 -- porting note: removed `simp` from this and added lemma above to address `simpNF` lint
chore: fix many typos (#4967)

These are all doc fixes

Diff
@@ -80,7 +80,7 @@ section
 You should extend this class when you extend `SpectralMap`. -/
 class SpectralMapClass (F : Type _) (α β : outParam <| Type _) [TopologicalSpace α]
   [TopologicalSpace β] extends FunLike F α fun _ => β where
-  /-- statement that `F` is a type of spectal maps-/
+  /-- statement that `F` is a type of spectral maps-/
   map_spectral (f : F) : IsSpectralMap f
 #align spectral_map_class SpectralMapClass
 
chore: bump to nightly-2023-04-11 (#3139)
Diff
@@ -91,9 +91,8 @@ export SpectralMapClass (map_spectral)
 attribute [simp] map_spectral
 
 -- See note [lower instance priority]
--- porting note: `TopologicalSpace` params marked as implicit to address dangerous instances lint
-instance (priority := 100) SpectralMapClass.toContinuousMapClass {_ : TopologicalSpace α}
-    {_ : TopologicalSpace β} [SpectralMapClass F α β] : ContinuousMapClass F α β :=
+instance (priority := 100) SpectralMapClass.toContinuousMapClass [TopologicalSpace α]
+    [TopologicalSpace β] [SpectralMapClass F α β] : ContinuousMapClass F α β :=
   { ‹SpectralMapClass F α β› with map_continuous := fun f => (map_spectral f).continuous }
 #align spectral_map_class.to_continuous_map_class SpectralMapClass.toContinuousMapClass
 
feat: Port/Topology.Spectral.Hom (#2127)

port of topology.spectral.hom

Also renames instance in Data.FunLike.Basic

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Dependencies 8 + 308

309 files ported (97.5%)
134964 lines ported (96.4%)
Show graph

The unported dependencies are