Esakia morphisms #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines pseudo-epimorphisms and Esakia morphisms.
We use the fun_like
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 #
pseudo_epimorphism
: Pseudo-epimorphisms. Mapsf
such thatf a ≤ b
implies the existence ofa'
such thata ≤ a'
andf a' = b
.esakia_hom
: Esakia morphisms. Continuous pseudo-epimorphisms.
Typeclasses #
References #
- to_order_hom : α →o β
- exists_map_eq_of_map_le' : ∀ ⦃a : α⦄ ⦃b : β⦄, self.to_order_hom.to_fun a ≤ b → (∃ (c : α), a ≤ c ∧ self.to_order_hom.to_fun c = b)
The type of pseudo-epimorphisms, aka p-morphisms, aka bounded maps, from α
to β
.
Instances for pseudo_epimorphism
- pseudo_epimorphism.has_sizeof_inst
- pseudo_epimorphism.has_coe_t
- pseudo_epimorphism.pseudo_epimorphism_class
- pseudo_epimorphism.has_coe_to_fun
- pseudo_epimorphism.inhabited
- to_continuous_order_hom : α →Co β
- exists_map_eq_of_map_le' : ∀ ⦃a : α⦄ ⦃b : β⦄, self.to_continuous_order_hom.to_order_hom.to_fun a ≤ b → (∃ (c : α), a ≤ c ∧ self.to_continuous_order_hom.to_order_hom.to_fun c = b)
The type of Esakia morphisms, aka continuous pseudo-epimorphisms, from α
to β
.
Instances for esakia_hom
- esakia_hom.has_sizeof_inst
- esakia_hom.has_coe_t
- esakia_hom.esakia_hom_class
- esakia_hom.has_coe_to_fun
- esakia_hom.inhabited
- coe : F → Π (a : α), (λ (_x : α), β) a
- coe_injective' : function.injective pseudo_epimorphism_class.coe
- map_rel : ∀ (f : F) {a b : α}, a ≤ b → ⇑f a ≤ ⇑f b
- exists_map_eq_of_map_le : ∀ (f : F) ⦃a : α⦄ ⦃b : β⦄, ⇑f a ≤ b → (∃ (c : α), a ≤ c ∧ ⇑f c = b)
pseudo_epimorphism_class F α β
states that F
is a type of ⊔
-preserving morphisms.
You should extend this class when you extend pseudo_epimorphism
.
Instances of this typeclass
Instances of other typeclasses for pseudo_epimorphism_class
- pseudo_epimorphism_class.has_sizeof_inst
- coe : F → Π (a : α), (λ (_x : α), β) a
- coe_injective' : function.injective esakia_hom_class.coe
- map_rel : ∀ (f : F) {a b : α}, a ≤ b → ⇑f a ≤ ⇑f b
- map_continuous : ∀ (f : F), continuous ⇑f
- exists_map_eq_of_map_le : ∀ (f : F) ⦃a : α⦄ ⦃b : β⦄, ⇑f a ≤ b → (∃ (c : α), a ≤ c ∧ ⇑f c = b)
esakia_hom_class F α β
states that F
is a type of lattice morphisms.
You should extend this class when you extend esakia_hom
.
Instances of this typeclass
Instances of other typeclasses for esakia_hom_class
- esakia_hom_class.has_sizeof_inst
Equations
- pseudo_epimorphism_class.to_top_hom_class = {coe := pseudo_epimorphism_class.coe _inst_5, coe_injective' := _, map_top := _}
Equations
Equations
- esakia_hom_class.to_pseudo_epimorphism_class = {coe := esakia_hom_class.coe _inst_5, coe_injective' := _, map_rel := _, exists_map_eq_of_map_le := _}
Equations
- pseudo_epimorphism.has_coe_t = {coe := λ (f : F), {to_order_hom := ↑f, exists_map_eq_of_map_le' := _}}
Equations
- esakia_hom.has_coe_t = {coe := λ (f : F), {to_continuous_order_hom := ↑f, exists_map_eq_of_map_le' := _}}
Pseudo-epimorphisms #
Equations
- pseudo_epimorphism.pseudo_epimorphism_class = {coe := λ (f : pseudo_epimorphism α β), f.to_order_hom.to_fun, coe_injective' := _, map_rel := _, exists_map_eq_of_map_le := _}
Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun
directly.
Copy of a pseudo_epimorphism
with a new to_fun
equal to the old one. Useful to fix
definitional equalities.
Equations
- f.copy f' h = {to_order_hom := f.to_order_hom.copy f' h, exists_map_eq_of_map_le' := _}
id
as a pseudo_epimorphism
.
Equations
- pseudo_epimorphism.id α = {to_order_hom := order_hom.id _inst_1, exists_map_eq_of_map_le' := _}
Equations
- pseudo_epimorphism.inhabited α = {default := pseudo_epimorphism.id α _inst_1}
Composition of pseudo_epimorphism
s as a pseudo_epimorphism
.
Equations
- g.comp f = {to_order_hom := g.to_order_hom.comp f.to_order_hom, exists_map_eq_of_map_le' := _}
Esakia morphisms #
Reinterpret an esakia_hom
as a pseudo_epimorphism
.
Equations
Equations
- esakia_hom.esakia_hom_class = {coe := λ (f : esakia_hom α β), f.to_continuous_order_hom.to_order_hom.to_fun, coe_injective' := _, map_rel := _, map_continuous := _, exists_map_eq_of_map_le := _}
Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun
directly.
Copy of an esakia_hom
with a new to_fun
equal to the old one. Useful to fix definitional
equalities.
Equations
- f.copy f' h = {to_continuous_order_hom := f.to_continuous_order_hom.copy f' h, exists_map_eq_of_map_le' := _}
id
as an esakia_hom
.
Equations
- esakia_hom.id α = {to_continuous_order_hom := continuous_order_hom.id α _inst_2, exists_map_eq_of_map_le' := _}
Equations
- esakia_hom.inhabited α = {default := esakia_hom.id α _inst_2}
Composition of esakia_hom
s as an esakia_hom
.