topology.order.hom.basic
⟷
Mathlib.Topology.Order.Hom.Basic
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -98,7 +98,7 @@ instance : ContinuousOrderHomClass (α →Co β) α β
where
coe f := f.toFun
coe_injective' f g h := by obtain ⟨⟨_, _⟩, _⟩ := f; obtain ⟨⟨_, _⟩, _⟩ := g; congr
- map_rel f := f.monotone'
+ mapRel f := f.monotone'
map_continuous f := f.continuous_toFun
/-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -104,7 +104,7 @@ instance : ContinuousOrderHomClass (α →Co β) α β
/-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
directly. -/
instance : CoeFun (α →Co β) fun _ => α → β :=
- FunLike.hasCoeToFun
+ DFunLike.hasCoeToFun
#print ContinuousOrderHom.toFun_eq_coe /-
@[simp]
@@ -116,7 +116,7 @@ theorem toFun_eq_coe {f : α →Co β} : f.toFun = (f : α → β) :=
#print ContinuousOrderHom.ext /-
@[ext]
theorem ext {f g : α →Co β} (h : ∀ a, f a = g a) : f = g :=
- FunLike.ext f g h
+ DFunLike.ext f g h
#align continuous_order_hom.ext ContinuousOrderHom.ext
-/
@@ -137,7 +137,7 @@ theorem coe_copy (f : α →Co β) (f' : α → β) (h : f' = f) : ⇑(f.copy f'
#print ContinuousOrderHom.copy_eq /-
theorem copy_eq (f : α →Co β) (f' : α → β) (h : f' = f) : f.copy f' h = f :=
- FunLike.ext' h
+ DFunLike.ext' h
#align continuous_order_hom.copy_eq ContinuousOrderHom.copy_eq
-/
@@ -215,7 +215,7 @@ theorem id_comp (f : α →Co β) : (ContinuousOrderHom.id β).comp f = f :=
#print ContinuousOrderHom.cancel_right /-
theorem cancel_right {g₁ g₂ : β →Co γ} {f : α →Co β} (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 continuous_order_hom.cancel_right ContinuousOrderHom.cancel_right
-/
@@ -232,7 +232,7 @@ instance : Preorder (α →Co β) :=
end Preorder
instance [PartialOrder β] : PartialOrder (α →Co β) :=
- PartialOrder.lift _ FunLike.coe_injective
+ PartialOrder.lift _ DFunLike.coe_injective
end ContinuousOrderHom
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ 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.Order.Hom.Basic
-import Mathbin.Topology.ContinuousFunction.Basic
+import Order.Hom.Basic
+import Topology.ContinuousFunction.Basic
#align_import topology.order.hom.basic from "leanprover-community/mathlib"@"b6da1a0b3e7cd83b1f744c49ce48ef8c6307d2f6"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
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.order.hom.basic
-! leanprover-community/mathlib commit b6da1a0b3e7cd83b1f744c49ce48ef8c6307d2f6
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Order.Hom.Basic
import Mathbin.Topology.ContinuousFunction.Basic
+#align_import topology.order.hom.basic from "leanprover-community/mathlib"@"b6da1a0b3e7cd83b1f744c49ce48ef8c6307d2f6"
+
/-!
# Continuous order homomorphisms
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -46,7 +46,6 @@ structure ContinuousOrderHom (α β : Type _) [Preorder α] [Preorder β] [Topol
#align continuous_order_hom ContinuousOrderHom
-/
--- mathport name: «expr →Co »
infixr:25 " →Co " => ContinuousOrderHom
section
@@ -110,30 +109,40 @@ directly. -/
instance : CoeFun (α →Co β) fun _ => α → β :=
FunLike.hasCoeToFun
+#print ContinuousOrderHom.toFun_eq_coe /-
@[simp]
theorem toFun_eq_coe {f : α →Co β} : f.toFun = (f : α → β) :=
rfl
#align continuous_order_hom.to_fun_eq_coe ContinuousOrderHom.toFun_eq_coe
+-/
+#print ContinuousOrderHom.ext /-
@[ext]
theorem ext {f g : α →Co β} (h : ∀ a, f a = g a) : f = g :=
FunLike.ext f g h
#align continuous_order_hom.ext ContinuousOrderHom.ext
+-/
+#print ContinuousOrderHom.copy /-
/-- Copy of a `continuous_order_hom` with a new `continuous_map` equal to the old one. Useful to fix
definitional equalities. -/
protected def copy (f : α →Co β) (f' : α → β) (h : f' = f) : α →Co β :=
⟨f.toOrderHom.copy f' <| h, h.symm.subst f.continuous_toFun⟩
#align continuous_order_hom.copy ContinuousOrderHom.copy
+-/
+#print ContinuousOrderHom.coe_copy /-
@[simp]
theorem coe_copy (f : α →Co β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' :=
rfl
#align continuous_order_hom.coe_copy ContinuousOrderHom.coe_copy
+-/
+#print ContinuousOrderHom.copy_eq /-
theorem copy_eq (f : α →Co β) (f' : α → β) (h : f' = f) : f.copy f' h = f :=
FunLike.ext' h
#align continuous_order_hom.copy_eq ContinuousOrderHom.copy_eq
+-/
variable (α)
@@ -147,17 +156,21 @@ protected def id : α →Co α :=
instance : Inhabited (α →Co α) :=
⟨ContinuousOrderHom.id _⟩
+#print ContinuousOrderHom.coe_id /-
@[simp]
theorem coe_id : ⇑(ContinuousOrderHom.id α) = id :=
rfl
#align continuous_order_hom.coe_id ContinuousOrderHom.coe_id
+-/
variable {α}
+#print ContinuousOrderHom.id_apply /-
@[simp]
theorem id_apply (a : α) : ContinuousOrderHom.id α a = a :=
rfl
#align continuous_order_hom.id_apply ContinuousOrderHom.id_apply
+-/
#print ContinuousOrderHom.comp /-
/-- Composition of `continuous_order_hom`s as a `continuous_order_hom`. -/
@@ -166,41 +179,55 @@ def comp (f : β →Co γ) (g : α →Co β) : ContinuousOrderHom α γ :=
#align continuous_order_hom.comp ContinuousOrderHom.comp
-/
+#print ContinuousOrderHom.coe_comp /-
@[simp]
theorem coe_comp (f : β →Co γ) (g : α →Co β) : (f.comp g : α → γ) = f ∘ g :=
rfl
#align continuous_order_hom.coe_comp ContinuousOrderHom.coe_comp
+-/
+#print ContinuousOrderHom.comp_apply /-
@[simp]
theorem comp_apply (f : β →Co γ) (g : α →Co β) (a : α) : (f.comp g) a = f (g a) :=
rfl
#align continuous_order_hom.comp_apply ContinuousOrderHom.comp_apply
+-/
+#print ContinuousOrderHom.comp_assoc /-
@[simp]
theorem comp_assoc (f : γ →Co δ) (g : β →Co γ) (h : α →Co β) :
(f.comp g).comp h = f.comp (g.comp h) :=
rfl
#align continuous_order_hom.comp_assoc ContinuousOrderHom.comp_assoc
+-/
+#print ContinuousOrderHom.comp_id /-
@[simp]
theorem comp_id (f : α →Co β) : f.comp (ContinuousOrderHom.id α) = f :=
ext fun a => rfl
#align continuous_order_hom.comp_id ContinuousOrderHom.comp_id
+-/
+#print ContinuousOrderHom.id_comp /-
@[simp]
theorem id_comp (f : α →Co β) : (ContinuousOrderHom.id β).comp f = f :=
ext fun a => rfl
#align continuous_order_hom.id_comp ContinuousOrderHom.id_comp
+-/
+#print ContinuousOrderHom.cancel_right /-
theorem cancel_right {g₁ g₂ : β →Co γ} {f : α →Co β} (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 continuous_order_hom.cancel_right ContinuousOrderHom.cancel_right
+-/
+#print ContinuousOrderHom.cancel_left /-
theorem cancel_left {g : β →Co γ} {f₁ f₂ : α →Co β} (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 continuous_order_hom.cancel_left ContinuousOrderHom.cancel_left
+-/
instance : Preorder (α →Co β) :=
Preorder.lift (coeFn : (α →Co β) → α → β)
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -41,7 +41,7 @@ variable {F α β γ δ : Type _}
#print ContinuousOrderHom /-
/-- The type of continuous monotone maps from `α` to `β`, aka Priestley homomorphisms. -/
structure ContinuousOrderHom (α β : Type _) [Preorder α] [Preorder β] [TopologicalSpace α]
- [TopologicalSpace β] extends OrderHom α β where
+ [TopologicalSpace β] extends OrderHom α β where
continuous_toFun : Continuous to_fun
#align continuous_order_hom ContinuousOrderHom
-/
@@ -56,8 +56,8 @@ section
You should extend this class when you extend `continuous_order_hom`. -/
class ContinuousOrderHomClass (F : Type _) (α β : outParam <| Type _) [Preorder α] [Preorder β]
- [TopologicalSpace α] [TopologicalSpace β] extends
- RelHomClass F ((· ≤ ·) : α → α → Prop) ((· ≤ ·) : β → β → Prop) where
+ [TopologicalSpace α] [TopologicalSpace β] extends
+ RelHomClass F ((· ≤ ·) : α → α → Prop) ((· ≤ ·) : β → β → Prop) where
map_continuous (f : F) : Continuous f
#align continuous_order_hom_class ContinuousOrderHomClass
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -110,57 +110,27 @@ directly. -/
instance : CoeFun (α →Co β) fun _ => α → β :=
FunLike.hasCoeToFun
-/- warning: continuous_order_hom.to_fun_eq_coe -> ContinuousOrderHom.toFun_eq_coe is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] {f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3}, Eq.{max (succ u1) (succ u2)} (α -> β) (OrderHom.toFun.{u1, u2} α β _inst_2 _inst_4 (ContinuousOrderHom.toOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3 f)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) f)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Preorder.{u2} α] [_inst_3 : TopologicalSpace.{u1} β] [_inst_4 : Preorder.{u1} β] {f : ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3}, Eq.{max (succ u2) (succ u1)} (α -> β) (OrderHom.toFun.{u2, u1} α β _inst_2 _inst_4 (ContinuousOrderHom.toOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u2, u1} α β _inst_1 _inst_2 _inst_3 _inst_4))) f)
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.to_fun_eq_coe ContinuousOrderHom.toFun_eq_coeₓ'. -/
@[simp]
theorem toFun_eq_coe {f : α →Co β} : f.toFun = (f : α → β) :=
rfl
#align continuous_order_hom.to_fun_eq_coe ContinuousOrderHom.toFun_eq_coe
-/- warning: continuous_order_hom.ext -> ContinuousOrderHom.ext is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] {f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3} {g : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3}, (forall (a : α), Eq.{succ u2} β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) f a) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) g a)) -> (Eq.{max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) f g)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Preorder.{u2} α] [_inst_3 : TopologicalSpace.{u1} β] [_inst_4 : Preorder.{u1} β] {f : ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3} {g : ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3}, (forall (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u2, u1} α β _inst_1 _inst_2 _inst_3 _inst_4))) f a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u2, u1} α β _inst_1 _inst_2 _inst_3 _inst_4))) g a)) -> (Eq.{max (succ u2) (succ u1)} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) f g)
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.ext ContinuousOrderHom.extₓ'. -/
@[ext]
theorem ext {f g : α →Co β} (h : ∀ a, f a = g a) : f = g :=
FunLike.ext f g h
#align continuous_order_hom.ext ContinuousOrderHom.ext
-/- warning: continuous_order_hom.copy -> ContinuousOrderHom.copy is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] (f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (f' : α -> β), (Eq.{max (succ u1) (succ u2)} (α -> β) f' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) f)) -> (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3)
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] (f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (f' : α -> β), (Eq.{max (succ u1) (succ u2)} (α -> β) f' (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u1 u2, u1, u2} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u1 u2, u1, u2} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4))) f)) -> (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3)
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.copy ContinuousOrderHom.copyₓ'. -/
/-- Copy of a `continuous_order_hom` with a new `continuous_map` equal to the old one. Useful to fix
definitional equalities. -/
protected def copy (f : α →Co β) (f' : α → β) (h : f' = f) : α →Co β :=
⟨f.toOrderHom.copy f' <| h, h.symm.subst f.continuous_toFun⟩
#align continuous_order_hom.copy ContinuousOrderHom.copy
-/- warning: continuous_order_hom.coe_copy -> ContinuousOrderHom.coe_copy is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] (f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (f' : α -> β) (h : Eq.{max (succ u1) (succ u2)} (α -> β) f' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) f)), Eq.{max (succ u1) (succ u2)} (α -> β) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) (ContinuousOrderHom.copy.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 f f' h)) f'
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Preorder.{u2} α] [_inst_3 : TopologicalSpace.{u1} β] [_inst_4 : Preorder.{u1} β] (f : ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) (f' : α -> β) (h : Eq.{max (succ u2) (succ u1)} (α -> β) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u2, u1} α β _inst_1 _inst_2 _inst_3 _inst_4))) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : α), (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u2, u1} α β _inst_1 _inst_2 _inst_3 _inst_4))) (ContinuousOrderHom.copy.{u2, u1} α β _inst_1 _inst_2 _inst_3 _inst_4 f f' h)) f'
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.coe_copy ContinuousOrderHom.coe_copyₓ'. -/
@[simp]
theorem coe_copy (f : α →Co β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' :=
rfl
#align continuous_order_hom.coe_copy ContinuousOrderHom.coe_copy
-/- warning: continuous_order_hom.copy_eq -> ContinuousOrderHom.copy_eq is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] (f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (f' : α -> β) (h : Eq.{max (succ u1) (succ u2)} (α -> β) f' (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) f)), Eq.{max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (ContinuousOrderHom.copy.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4 f f' h) f
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Preorder.{u2} α] [_inst_3 : TopologicalSpace.{u1} β] [_inst_4 : Preorder.{u1} β] (f : ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) (f' : α -> β) (h : Eq.{max (succ u2) (succ u1)} (α -> β) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u2 u1, u2, u1} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u2, u1} α β _inst_1 _inst_2 _inst_3 _inst_4))) f)), Eq.{max (succ u2) (succ u1)} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) (ContinuousOrderHom.copy.{u2, u1} α β _inst_1 _inst_2 _inst_3 _inst_4 f f' h) f
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.copy_eq ContinuousOrderHom.copy_eqₓ'. -/
theorem copy_eq (f : α →Co β) (f' : α → β) (h : f' = f) : f.copy f' h = f :=
FunLike.ext' h
#align continuous_order_hom.copy_eq ContinuousOrderHom.copy_eq
@@ -177,12 +147,6 @@ protected def id : α →Co α :=
instance : Inhabited (α →Co α) :=
⟨ContinuousOrderHom.id _⟩
-/- warning: continuous_order_hom.coe_id -> ContinuousOrderHom.coe_id is a dubious translation:
-lean 3 declaration is
- forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α], Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) (fun (_x : ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) => α -> α) (ContinuousOrderHom.hasCoeToFun.{u1, u1} α α _inst_1 _inst_2 _inst_1 _inst_2) (ContinuousOrderHom.id.{u1} α _inst_1 _inst_2)) (id.{succ u1} α)
-but is expected to have type
- forall (α : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => α) _x) (ContinuousMapClass.toFunLike.{u1, u1, u1} (ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) α α _inst_1 _inst_1 (ContinuousOrderHomClass.toContinuousMapClass.{u1, u1, u1} (ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) α α _inst_2 _inst_2 _inst_1 _inst_1 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u1, u1} α α _inst_1 _inst_2 _inst_1 _inst_2))) (ContinuousOrderHom.id.{u1} α _inst_1 _inst_2)) (id.{succ u1} α)
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.coe_id ContinuousOrderHom.coe_idₓ'. -/
@[simp]
theorem coe_id : ⇑(ContinuousOrderHom.id α) = id :=
rfl
@@ -190,12 +154,6 @@ theorem coe_id : ⇑(ContinuousOrderHom.id α) = id :=
variable {α}
-/- warning: continuous_order_hom.id_apply -> ContinuousOrderHom.id_apply is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) (fun (_x : ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) => α -> α) (ContinuousOrderHom.hasCoeToFun.{u1, u1} α α _inst_1 _inst_2 _inst_1 _inst_2) (ContinuousOrderHom.id.{u1} α _inst_1 _inst_2) a) a
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => α) _x) (ContinuousMapClass.toFunLike.{u1, u1, u1} (ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) α α _inst_1 _inst_1 (ContinuousOrderHomClass.toContinuousMapClass.{u1, u1, u1} (ContinuousOrderHom.{u1, u1} α α _inst_2 _inst_2 _inst_1 _inst_1) α α _inst_2 _inst_2 _inst_1 _inst_1 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u1, u1} α α _inst_1 _inst_2 _inst_1 _inst_2))) (ContinuousOrderHom.id.{u1} α _inst_1 _inst_2) a) a
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.id_apply ContinuousOrderHom.id_applyₓ'. -/
@[simp]
theorem id_apply (a : α) : ContinuousOrderHom.id α a = a :=
rfl
@@ -208,67 +166,37 @@ def comp (f : β →Co γ) (g : α →Co β) : ContinuousOrderHom α γ :=
#align continuous_order_hom.comp ContinuousOrderHom.comp
-/
-/- warning: continuous_order_hom.coe_comp -> ContinuousOrderHom.coe_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.coe_comp ContinuousOrderHom.coe_compₓ'. -/
@[simp]
theorem coe_comp (f : β →Co γ) (g : α →Co β) : (f.comp g : α → γ) = f ∘ g :=
rfl
#align continuous_order_hom.coe_comp ContinuousOrderHom.coe_comp
-/- warning: continuous_order_hom.comp_apply -> ContinuousOrderHom.comp_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.comp_apply ContinuousOrderHom.comp_applyₓ'. -/
@[simp]
theorem comp_apply (f : β →Co γ) (g : α →Co β) (a : α) : (f.comp g) a = f (g a) :=
rfl
#align continuous_order_hom.comp_apply ContinuousOrderHom.comp_apply
-/- warning: continuous_order_hom.comp_assoc -> ContinuousOrderHom.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 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] [_inst_5 : TopologicalSpace.{u3} γ] [_inst_6 : Preorder.{u3} γ] [_inst_7 : TopologicalSpace.{u4} δ] [_inst_8 : Preorder.{u4} δ] (f : ContinuousOrderHom.{u3, u4} γ δ _inst_6 _inst_8 _inst_5 _inst_7) (g : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) (h : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3), Eq.{max (succ u1) (succ u4)} (ContinuousOrderHom.{u1, u4} α δ _inst_2 _inst_8 _inst_1 _inst_7) (ContinuousOrderHom.comp.{u1, u2, u4} α β δ _inst_1 _inst_2 _inst_3 _inst_4 _inst_7 _inst_8 (ContinuousOrderHom.comp.{u2, u3, u4} β γ δ _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 f g) h) (ContinuousOrderHom.comp.{u1, u3, u4} α γ δ _inst_1 _inst_2 _inst_5 _inst_6 _inst_7 _inst_8 f (ContinuousOrderHom.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g h))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u4}} {δ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] [_inst_5 : TopologicalSpace.{u4} γ] [_inst_6 : Preorder.{u4} γ] [_inst_7 : TopologicalSpace.{u3} δ] [_inst_8 : Preorder.{u3} δ] (f : ContinuousOrderHom.{u4, u3} γ δ _inst_6 _inst_8 _inst_5 _inst_7) (g : ContinuousOrderHom.{u2, u4} β γ _inst_4 _inst_6 _inst_3 _inst_5) (h : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3), Eq.{max (succ u1) (succ u3)} (ContinuousOrderHom.{u1, u3} α δ _inst_2 _inst_8 _inst_1 _inst_7) (ContinuousOrderHom.comp.{u1, u2, u3} α β δ _inst_1 _inst_2 _inst_3 _inst_4 _inst_7 _inst_8 (ContinuousOrderHom.comp.{u2, u4, u3} β γ δ _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 f g) h) (ContinuousOrderHom.comp.{u1, u4, u3} α γ δ _inst_1 _inst_2 _inst_5 _inst_6 _inst_7 _inst_8 f (ContinuousOrderHom.comp.{u1, u2, u4} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g h))
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.comp_assoc ContinuousOrderHom.comp_assocₓ'. -/
@[simp]
theorem comp_assoc (f : γ →Co δ) (g : β →Co γ) (h : α →Co β) :
(f.comp g).comp h = f.comp (g.comp h) :=
rfl
#align continuous_order_hom.comp_assoc ContinuousOrderHom.comp_assoc
-/- warning: continuous_order_hom.comp_id -> ContinuousOrderHom.comp_id is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] (f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3), Eq.{max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (ContinuousOrderHom.comp.{u1, u1, u2} α α β _inst_1 _inst_2 _inst_1 _inst_2 _inst_3 _inst_4 f (ContinuousOrderHom.id.{u1} α _inst_1 _inst_2)) f
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Preorder.{u2} α] [_inst_3 : TopologicalSpace.{u1} β] [_inst_4 : Preorder.{u1} β] (f : ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3), Eq.{max (succ u2) (succ u1)} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) (ContinuousOrderHom.comp.{u2, u2, u1} α α β _inst_1 _inst_2 _inst_1 _inst_2 _inst_3 _inst_4 f (ContinuousOrderHom.id.{u2} α _inst_1 _inst_2)) f
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.comp_id ContinuousOrderHom.comp_idₓ'. -/
@[simp]
theorem comp_id (f : α →Co β) : f.comp (ContinuousOrderHom.id α) = f :=
ext fun a => rfl
#align continuous_order_hom.comp_id ContinuousOrderHom.comp_id
-/- warning: continuous_order_hom.id_comp -> ContinuousOrderHom.id_comp is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] (f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3), Eq.{max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (ContinuousOrderHom.comp.{u1, u2, u2} α β β _inst_1 _inst_2 _inst_3 _inst_4 _inst_3 _inst_4 (ContinuousOrderHom.id.{u2} β _inst_3 _inst_4) f) f
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Preorder.{u2} α] [_inst_3 : TopologicalSpace.{u1} β] [_inst_4 : Preorder.{u1} β] (f : ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3), Eq.{max (succ u2) (succ u1)} (ContinuousOrderHom.{u2, u1} α β _inst_2 _inst_4 _inst_1 _inst_3) (ContinuousOrderHom.comp.{u2, u1, u1} α β β _inst_1 _inst_2 _inst_3 _inst_4 _inst_3 _inst_4 (ContinuousOrderHom.id.{u1} β _inst_3 _inst_4) f) f
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.id_comp ContinuousOrderHom.id_compₓ'. -/
@[simp]
theorem id_comp (f : α →Co β) : (ContinuousOrderHom.id β).comp f = f :=
ext fun a => rfl
#align continuous_order_hom.id_comp ContinuousOrderHom.id_comp
-/- warning: continuous_order_hom.cancel_right -> ContinuousOrderHom.cancel_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.cancel_right ContinuousOrderHom.cancel_rightₓ'. -/
theorem cancel_right {g₁ g₂ : β →Co γ} {f : α →Co β} (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 continuous_order_hom.cancel_right ContinuousOrderHom.cancel_right
-/- warning: continuous_order_hom.cancel_left -> ContinuousOrderHom.cancel_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align continuous_order_hom.cancel_left ContinuousOrderHom.cancel_leftₓ'. -/
theorem cancel_left {g : β →Co γ} {f₁ f₂ : α →Co β} (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 _⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -101,10 +101,7 @@ def toContinuousMap (f : α →Co β) : C(α, β) :=
instance : ContinuousOrderHomClass (α →Co β) α β
where
coe f := f.toFun
- coe_injective' f g h := by
- obtain ⟨⟨_, _⟩, _⟩ := f
- obtain ⟨⟨_, _⟩, _⟩ := g
- congr
+ coe_injective' f g h := by obtain ⟨⟨_, _⟩, _⟩ := f; obtain ⟨⟨_, _⟩, _⟩ := g; congr
map_rel f := f.monotone'
map_continuous f := f.continuous_toFun
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -212,10 +212,7 @@ def comp (f : β →Co γ) (g : α →Co β) : ContinuousOrderHom α γ :=
-/
/- warning: continuous_order_hom.coe_comp -> ContinuousOrderHom.coe_comp is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] [_inst_5 : TopologicalSpace.{u3} γ] [_inst_6 : Preorder.{u3} γ] (f : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) (g : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3), Eq.{max (succ u1) (succ u3)} ((fun (_x : ContinuousOrderHom.{u1, u3} α γ _inst_2 _inst_6 _inst_1 _inst_5) => α -> γ) (ContinuousOrderHom.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 f g)) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (ContinuousOrderHom.{u1, u3} α γ _inst_2 _inst_6 _inst_1 _inst_5) (fun (_x : ContinuousOrderHom.{u1, u3} α γ _inst_2 _inst_6 _inst_1 _inst_5) => α -> γ) (ContinuousOrderHom.hasCoeToFun.{u1, u3} α γ _inst_1 _inst_2 _inst_5 _inst_6) (ContinuousOrderHom.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 f g)) (Function.comp.{succ u1, succ u2, succ u3} α β γ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) (fun (_x : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) => β -> γ) (ContinuousOrderHom.hasCoeToFun.{u2, u3} β γ _inst_3 _inst_4 _inst_5 _inst_6) f) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) g))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u3} β] [_inst_4 : Preorder.{u3} β] [_inst_5 : TopologicalSpace.{u2} γ] [_inst_6 : Preorder.{u2} γ] (f : ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) (g : ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3), Eq.{max (succ u1) (succ u2)} (forall (a : α), (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => γ) a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (ContinuousOrderHom.{u1, u2} α γ _inst_2 _inst_6 _inst_1 _inst_5) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => γ) _x) (ContinuousMapClass.toFunLike.{max u1 u2, u1, u2} (ContinuousOrderHom.{u1, u2} α γ _inst_2 _inst_6 _inst_1 _inst_5) α γ _inst_1 _inst_5 (ContinuousOrderHomClass.toContinuousMapClass.{max u1 u2, u1, u2} (ContinuousOrderHom.{u1, u2} α γ _inst_2 _inst_6 _inst_1 _inst_5) α γ _inst_2 _inst_6 _inst_1 _inst_5 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u1, u2} α γ _inst_1 _inst_2 _inst_5 _inst_6))) (ContinuousOrderHom.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 f g)) (Function.comp.{succ u1, succ u3, succ u2} α β γ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β (fun (_x : β) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : β) => γ) _x) (ContinuousMapClass.toFunLike.{max u3 u2, u3, u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β γ _inst_3 _inst_5 (ContinuousOrderHomClass.toContinuousMapClass.{max u3 u2, u3, u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β γ _inst_4 _inst_6 _inst_3 _inst_5 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u3, u2} β γ _inst_3 _inst_4 _inst_5 _inst_6))) f) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u1 u3, u1, u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u1 u3, u1, u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u1, u3} α β _inst_1 _inst_2 _inst_3 _inst_4))) g))
+<too large>
Case conversion may be inaccurate. Consider using '#align continuous_order_hom.coe_comp ContinuousOrderHom.coe_compₓ'. -/
@[simp]
theorem coe_comp (f : β →Co γ) (g : α →Co β) : (f.comp g : α → γ) = f ∘ g :=
@@ -223,10 +220,7 @@ theorem coe_comp (f : β →Co γ) (g : α →Co β) : (f.comp g : α → γ) =
#align continuous_order_hom.coe_comp ContinuousOrderHom.coe_comp
/- warning: continuous_order_hom.comp_apply -> ContinuousOrderHom.comp_apply is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] [_inst_5 : TopologicalSpace.{u3} γ] [_inst_6 : Preorder.{u3} γ] (f : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) (g : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (a : α), Eq.{succ u3} γ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (ContinuousOrderHom.{u1, u3} α γ _inst_2 _inst_6 _inst_1 _inst_5) (fun (_x : ContinuousOrderHom.{u1, u3} α γ _inst_2 _inst_6 _inst_1 _inst_5) => α -> γ) (ContinuousOrderHom.hasCoeToFun.{u1, u3} α γ _inst_1 _inst_2 _inst_5 _inst_6) (ContinuousOrderHom.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 f g) a) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) (fun (_x : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) => β -> γ) (ContinuousOrderHom.hasCoeToFun.{u2, u3} β γ _inst_3 _inst_4 _inst_5 _inst_6) f (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) g a))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u3} β] [_inst_4 : Preorder.{u3} β] [_inst_5 : TopologicalSpace.{u2} γ] [_inst_6 : Preorder.{u2} γ] (f : ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) (g : ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) (a : α), Eq.{succ u2} ((fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => γ) a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (ContinuousOrderHom.{u1, u2} α γ _inst_2 _inst_6 _inst_1 _inst_5) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => γ) _x) (ContinuousMapClass.toFunLike.{max u1 u2, u1, u2} (ContinuousOrderHom.{u1, u2} α γ _inst_2 _inst_6 _inst_1 _inst_5) α γ _inst_1 _inst_5 (ContinuousOrderHomClass.toContinuousMapClass.{max u1 u2, u1, u2} (ContinuousOrderHom.{u1, u2} α γ _inst_2 _inst_6 _inst_1 _inst_5) α γ _inst_2 _inst_6 _inst_1 _inst_5 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u1, u2} α γ _inst_1 _inst_2 _inst_5 _inst_6))) (ContinuousOrderHom.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 f g) a) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β (fun (_x : β) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : β) => γ) _x) (ContinuousMapClass.toFunLike.{max u3 u2, u3, u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β γ _inst_3 _inst_5 (ContinuousOrderHomClass.toContinuousMapClass.{max u3 u2, u3, u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β γ _inst_4 _inst_6 _inst_3 _inst_5 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u3, u2} β γ _inst_3 _inst_4 _inst_5 _inst_6))) f (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u1 u3, u1, u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u1 u3, u1, u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u1, u3} α β _inst_1 _inst_2 _inst_3 _inst_4))) g a))
+<too large>
Case conversion may be inaccurate. Consider using '#align continuous_order_hom.comp_apply ContinuousOrderHom.comp_applyₓ'. -/
@[simp]
theorem comp_apply (f : β →Co γ) (g : α →Co β) (a : α) : (f.comp g) a = f (g a) :=
@@ -268,10 +262,7 @@ theorem id_comp (f : α →Co β) : (ContinuousOrderHom.id β).comp f = f :=
#align continuous_order_hom.id_comp ContinuousOrderHom.id_comp
/- warning: continuous_order_hom.cancel_right -> ContinuousOrderHom.cancel_right is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] [_inst_5 : TopologicalSpace.{u3} γ] [_inst_6 : Preorder.{u3} γ] {g₁ : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5} {g₂ : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5} {f : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3}, (Function.Surjective.{succ u1, succ u2} α β (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) (fun (_x : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) => α -> β) (ContinuousOrderHom.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 _inst_3 _inst_4) f)) -> (Iff (Eq.{max (succ u1) (succ u3)} (ContinuousOrderHom.{u1, u3} α γ _inst_2 _inst_6 _inst_1 _inst_5) (ContinuousOrderHom.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g₁ f) (ContinuousOrderHom.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g₂ f)) (Eq.{max (succ u2) (succ u3)} (ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) g₁ g₂))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u3} β] [_inst_4 : Preorder.{u3} β] [_inst_5 : TopologicalSpace.{u2} γ] [_inst_6 : Preorder.{u2} γ] {g₁ : ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5} {g₂ : ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5} {f : ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3}, (Function.Surjective.{succ u1, succ u3} α β (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α (fun (_x : α) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : α) => β) _x) (ContinuousMapClass.toFunLike.{max u1 u3, u1, u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_1 _inst_3 (ContinuousOrderHomClass.toContinuousMapClass.{max u1 u3, u1, u3} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) α β _inst_2 _inst_4 _inst_1 _inst_3 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u1, u3} α β _inst_1 _inst_2 _inst_3 _inst_4))) f)) -> (Iff (Eq.{max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α γ _inst_2 _inst_6 _inst_1 _inst_5) (ContinuousOrderHom.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g₁ f) (ContinuousOrderHom.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g₂ f)) (Eq.{max (succ u3) (succ u2)} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) g₁ g₂))
+<too large>
Case conversion may be inaccurate. Consider using '#align continuous_order_hom.cancel_right ContinuousOrderHom.cancel_rightₓ'. -/
theorem cancel_right {g₁ g₂ : β →Co γ} {f : α →Co β} (hf : Surjective f) :
g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
@@ -279,10 +270,7 @@ theorem cancel_right {g₁ g₂ : β →Co γ} {f : α →Co β} (hf : Surjectiv
#align continuous_order_hom.cancel_right ContinuousOrderHom.cancel_right
/- warning: continuous_order_hom.cancel_left -> ContinuousOrderHom.cancel_left is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u2} β] [_inst_4 : Preorder.{u2} β] [_inst_5 : TopologicalSpace.{u3} γ] [_inst_6 : Preorder.{u3} γ] {g : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5} {f₁ : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3} {f₂ : ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3}, (Function.Injective.{succ u2, succ u3} β γ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) (fun (_x : ContinuousOrderHom.{u2, u3} β γ _inst_4 _inst_6 _inst_3 _inst_5) => β -> γ) (ContinuousOrderHom.hasCoeToFun.{u2, u3} β γ _inst_3 _inst_4 _inst_5 _inst_6) g)) -> (Iff (Eq.{max (succ u1) (succ u3)} (ContinuousOrderHom.{u1, u3} α γ _inst_2 _inst_6 _inst_1 _inst_5) (ContinuousOrderHom.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g f₁) (ContinuousOrderHom.comp.{u1, u2, u3} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g f₂)) (Eq.{max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α β _inst_2 _inst_4 _inst_1 _inst_3) f₁ f₂))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Preorder.{u1} α] [_inst_3 : TopologicalSpace.{u3} β] [_inst_4 : Preorder.{u3} β] [_inst_5 : TopologicalSpace.{u2} γ] [_inst_6 : Preorder.{u2} γ] {g : ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5} {f₁ : ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3} {f₂ : ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3}, (Function.Injective.{succ u3, succ u2} β γ (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β (fun (_x : β) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : β) => γ) _x) (ContinuousMapClass.toFunLike.{max u3 u2, u3, u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β γ _inst_3 _inst_5 (ContinuousOrderHomClass.toContinuousMapClass.{max u3 u2, u3, u2} (ContinuousOrderHom.{u3, u2} β γ _inst_4 _inst_6 _inst_3 _inst_5) β γ _inst_4 _inst_6 _inst_3 _inst_5 (ContinuousOrderHom.instContinuousOrderHomClassContinuousOrderHom.{u3, u2} β γ _inst_3 _inst_4 _inst_5 _inst_6))) g)) -> (Iff (Eq.{max (succ u1) (succ u2)} (ContinuousOrderHom.{u1, u2} α γ _inst_2 _inst_6 _inst_1 _inst_5) (ContinuousOrderHom.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g f₁) (ContinuousOrderHom.comp.{u1, u3, u2} α β γ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 g f₂)) (Eq.{max (succ u1) (succ u3)} (ContinuousOrderHom.{u1, u3} α β _inst_2 _inst_4 _inst_1 _inst_3) f₁ f₂))
+<too large>
Case conversion may be inaccurate. Consider using '#align continuous_order_hom.cancel_left ContinuousOrderHom.cancel_leftₓ'. -/
theorem cancel_left {g : β →Co γ} {f₁ f₂ : α →Co β} (hg : Injective g) :
g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -38,7 +38,6 @@ structure ContinuousOrderHom (α β : Type*) [Preorder α] [Preorder β] [Topolo
continuous_toFun : Continuous toFun
#align continuous_order_hom ContinuousOrderHom
--- mathport name: «expr →Co »
infixr:25 " →Co " => ContinuousOrderHom
section
@@ -109,7 +109,7 @@ instance : ContinuousOrderHomClass (α →Co β) α β where
map_monotone f := f.monotone'
map_continuous f := f.continuous_toFun
--- Porting note: new lemma
+-- Porting note (#10756): new lemma
@[simp] theorem coe_toOrderHom (f : α →Co β) : ⇑f.toOrderHom = f := rfl
theorem toFun_eq_coe {f : α →Co β} : f.toFun = (f : α → β) := rfl
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -43,7 +43,7 @@ infixr:25 " →Co " => ContinuousOrderHom
section
--- porting note: extending `ContinuousMapClass` instead of `OrderHomClass`
+-- Porting note: extending `ContinuousMapClass` instead of `OrderHomClass`
/-- `ContinuousOrderHomClass F α β` states that `F` is a type of continuous monotone maps.
You should extend this class when you extend `ContinuousOrderHom`. -/
@@ -109,7 +109,7 @@ instance : ContinuousOrderHomClass (α →Co β) α β where
map_monotone f := f.monotone'
map_continuous f := f.continuous_toFun
--- porting note: new lemma
+-- Porting note: new lemma
@[simp] theorem coe_toOrderHom (f : α →Co β) : ⇑f.toOrderHom = f := rfl
theorem toFun_eq_coe {f : α →Co β} : f.toFun = (f : α → β) := rfl
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.
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]
.
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_param
s, [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 sometimesThis 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.
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 outParam
s 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.)
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>
@@ -48,8 +48,8 @@ section
You should extend this class when you extend `ContinuousOrderHom`. -/
class ContinuousOrderHomClass (F : Type*) (α β : outParam <| Type*) [Preorder α] [Preorder β]
- [TopologicalSpace α] [TopologicalSpace β] extends
- ContinuousMapClass F α β where
+ [TopologicalSpace α] [TopologicalSpace β] [FunLike F α β] extends
+ ContinuousMapClass F α β : Prop where
map_monotone (f : F) : Monotone f
#align continuous_order_hom_class ContinuousOrderHomClass
@@ -57,7 +57,7 @@ class ContinuousOrderHomClass (F : Type*) (α β : outParam <| Type*) [Preorder
namespace ContinuousOrderHomClass
variable [Preorder α] [Preorder β] [TopologicalSpace α] [TopologicalSpace β]
- [ContinuousOrderHomClass F α β]
+ [FunLike F α β] [ContinuousOrderHomClass F α β]
-- See note [lower instance priority]
instance (priority := 100) toOrderHomClass :
@@ -98,12 +98,14 @@ def toContinuousMap (f : α →Co β) : C(α, β) :=
{ f with }
#align continuous_order_hom.to_continuous_map ContinuousOrderHom.toContinuousMap
-instance : ContinuousOrderHomClass (α →Co β) α β where
+instance instFunLike : FunLike (α →Co β) α β where
coe f := f.toFun
coe_injective' f g h := by
obtain ⟨⟨_, _⟩, _⟩ := f
obtain ⟨⟨_, _⟩, _⟩ := g
congr
+
+instance : ContinuousOrderHomClass (α →Co β) α β where
map_monotone f := f.monotone'
map_continuous f := f.continuous_toFun
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>
@@ -15,7 +15,7 @@ This file defines continuous order homomorphisms, that is maps which are both co
monotone. They are also called Priestley homomorphisms because they are the morphisms of the
category of Priestley spaces.
-We use the `FunLike` design, so each type of morphisms has a companion typeclass which is meant to
+We use the `DFunLike` design, so each type of morphisms has a companion typeclass which is meant to
be satisfied by itself and all stricter types.
## Types of morphisms
@@ -115,7 +115,7 @@ theorem toFun_eq_coe {f : α →Co β} : f.toFun = (f : α → β) := rfl
@[ext]
theorem ext {f g : α →Co β} (h : ∀ a, f a = g a) : f = g :=
- FunLike.ext f g h
+ DFunLike.ext f g h
#align continuous_order_hom.ext ContinuousOrderHom.ext
/-- Copy of a `ContinuousOrderHom` with a new `ContinuousMap` equal to the old one. Useful to fix
@@ -130,7 +130,7 @@ theorem coe_copy (f : α →Co β) (f' : α → β) (h : f' = f) : ⇑(f.copy f'
#align continuous_order_hom.coe_copy ContinuousOrderHom.coe_copy
theorem copy_eq (f : α →Co β) (f' : α → β) (h : f' = f) : f.copy f' h = f :=
- FunLike.ext' h
+ DFunLike.ext' h
#align continuous_order_hom.copy_eq ContinuousOrderHom.copy_eq
variable (α)
@@ -189,7 +189,7 @@ theorem id_comp (f : α →Co β) : (ContinuousOrderHom.id β).comp f = f :=
@[simp]
theorem cancel_right {g₁ g₂ : β →Co γ} {f : α →Co β} (hf : Surjective f) :
g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
- ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h, fun h => congr_arg₂ _ h rfl⟩
+ ⟨fun h => ext <| hf.forall.2 <| DFunLike.ext_iff.1 h, fun h => congr_arg₂ _ h rfl⟩
#align continuous_order_hom.cancel_right ContinuousOrderHom.cancel_right
@[simp]
@@ -204,6 +204,6 @@ instance : Preorder (α →Co β) :=
end Preorder
instance [PartialOrder β] : PartialOrder (α →Co β) :=
- PartialOrder.lift ((↑) : (α →Co β) → α → β) FunLike.coe_injective
+ PartialOrder.lift ((↑) : (α →Co β) → α → β) DFunLike.coe_injective
end ContinuousOrderHom
@@ -186,11 +186,13 @@ theorem id_comp (f : α →Co β) : (ContinuousOrderHom.id β).comp f = f :=
ext fun _ => rfl
#align continuous_order_hom.id_comp ContinuousOrderHom.id_comp
+@[simp]
theorem cancel_right {g₁ g₂ : β →Co γ} {f : α →Co β} (hf : Surjective f) :
g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h, fun h => congr_arg₂ _ h rfl⟩
#align continuous_order_hom.cancel_right ContinuousOrderHom.cancel_right
+@[simp]
theorem cancel_left {g : β →Co γ} {f₁ f₂ : α →Co β} (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 _⟩
@@ -70,6 +70,8 @@ instance (priority := 100) toOrderHomClass :
-- for the original coercion. The original one directly exposed
-- ContinuousOrderHom.mk which allowed simp to apply more eagerly than in all
-- the other results in `Topology.Order.Hom.Esakia`.
+/-- Turn an element of a type `F` satisfying `ContinuousOrderHomClass F α β` into an actual
+`ContinuousOrderHom`. This is declared as the default coercion from `F` to `α →Co β`. -/
@[coe]
def toContinuousOrderHom (f : F) : α →Co β :=
{ toFun := f
@@ -203,4 +205,3 @@ instance [PartialOrder β] : PartialOrder (α →Co β) :=
PartialOrder.lift ((↑) : (α →Co β) → α → β) FunLike.coe_injective
end ContinuousOrderHom
-
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -30,10 +30,10 @@ be satisfied by itself and all stricter types.
open Function
-variable {F α β γ δ : Type _}
+variable {F α β γ δ : Type*}
/-- The type of continuous monotone maps from `α` to `β`, aka Priestley homomorphisms. -/
-structure ContinuousOrderHom (α β : Type _) [Preorder α] [Preorder β] [TopologicalSpace α]
+structure ContinuousOrderHom (α β : Type*) [Preorder α] [Preorder β] [TopologicalSpace α]
[TopologicalSpace β] extends OrderHom α β where
continuous_toFun : Continuous toFun
#align continuous_order_hom ContinuousOrderHom
@@ -47,7 +47,7 @@ section
/-- `ContinuousOrderHomClass F α β` states that `F` is a type of continuous monotone maps.
You should extend this class when you extend `ContinuousOrderHom`. -/
-class ContinuousOrderHomClass (F : Type _) (α β : outParam <| Type _) [Preorder α] [Preorder β]
+class ContinuousOrderHomClass (F : Type*) (α β : outParam <| Type*) [Preorder α] [Preorder β]
[TopologicalSpace α] [TopologicalSpace β] extends
ContinuousMapClass F α β where
map_monotone (f : F) : Monotone f
@@ -2,15 +2,12 @@
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.order.hom.basic
-! leanprover-community/mathlib commit 0a0ec35061ed9960bf0e7ffb0335f44447b58977
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Order.Hom.Basic
import Mathlib.Topology.ContinuousFunction.Basic
+#align_import topology.order.hom.basic from "leanprover-community/mathlib"@"0a0ec35061ed9960bf0e7ffb0335f44447b58977"
+
/-!
# Continuous order homomorphisms
@@ -56,23 +56,33 @@ class ContinuousOrderHomClass (F : Type _) (α β : outParam <| Type _) [Preorde
map_monotone (f : F) : Monotone f
#align continuous_order_hom_class ContinuousOrderHomClass
-end
+-- Porting note: namespaced these results since there are more than 3 now
+namespace ContinuousOrderHomClass
+
+variable [Preorder α] [Preorder β] [TopologicalSpace α] [TopologicalSpace β]
+ [ContinuousOrderHomClass F α β]
-- See note [lower instance priority]
-instance (priority := 100) ContinuousOrderHomClass.toOrderHomClass [Preorder α] [Preorder β]
- [TopologicalSpace α] [TopologicalSpace β] [ContinuousOrderHomClass F α β] :
+instance (priority := 100) toOrderHomClass :
OrderHomClass F α β :=
{ ‹ContinuousOrderHomClass F α β› with
map_rel := ContinuousOrderHomClass.map_monotone }
#align continuous_order_hom_class.to_continuous_map_class ContinuousOrderHomClass.toContinuousMapClass
-instance [Preorder α] [Preorder β] [TopologicalSpace α] [TopologicalSpace β]
- [ContinuousOrderHomClass F α β] : CoeTC F (α →Co β) :=
- ⟨fun f =>
+-- Porting note: following `OrderHomClass.toOrderHom` design, introduced a wrapper
+-- for the original coercion. The original one directly exposed
+-- ContinuousOrderHom.mk which allowed simp to apply more eagerly than in all
+-- the other results in `Topology.Order.Hom.Esakia`.
+@[coe]
+def toContinuousOrderHom (f : F) : α →Co β :=
{ toFun := f
monotone' := ContinuousOrderHomClass.map_monotone f
- continuous_toFun := map_continuous f }⟩
+ continuous_toFun := map_continuous f }
+
+instance : CoeTC F (α →Co β) :=
+ ⟨toContinuousOrderHom⟩
+end ContinuousOrderHomClass
/-! ### Top homomorphisms -/
@@ -59,8 +59,8 @@ class ContinuousOrderHomClass (F : Type _) (α β : outParam <| Type _) [Preorde
end
-- See note [lower instance priority]
-instance (priority := 100) ContinuousOrderHomClass.toOrderHomClass {_ : Preorder α} {_ : Preorder β}
- {_ : TopologicalSpace α} {_ : TopologicalSpace β} [ContinuousOrderHomClass F α β] :
+instance (priority := 100) ContinuousOrderHomClass.toOrderHomClass [Preorder α] [Preorder β]
+ [TopologicalSpace α] [TopologicalSpace β] [ContinuousOrderHomClass F α β] :
OrderHomClass F α β :=
{ ‹ContinuousOrderHomClass F α β› with
map_rel := ContinuousOrderHomClass.map_monotone }
The unported dependencies are