Bounded order homomorphisms #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines (bounded) order homomorphisms.
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 #
top_hom
: Maps which preserve⊤
.bot_hom
: Maps which preserve⊥
.bounded_order_hom
: Bounded order homomorphisms. Monotone maps which preserve⊤
and⊥
.
Typeclasses #
The type of ⊤
-preserving functions from α
to β
.
Instances for top_hom
The type of ⊥
-preserving functions from α
to β
.
Instances for bot_hom
- to_order_hom : α →o β
- map_top' : self.to_order_hom.to_fun ⊤ = ⊤
- map_bot' : self.to_order_hom.to_fun ⊥ = ⊥
The type of bounded order homomorphisms from α
to β
.
Instances for bounded_order_hom
- bounded_order_hom.has_sizeof_inst
- bounded_order_hom.has_coe_t
- bounded_order_hom.bounded_order_hom_class
- bounded_order_hom.has_coe_to_fun
- bounded_order_hom.inhabited
- coe : F → Π (a : α), (λ (_x : α), β) a
- coe_injective' : function.injective top_hom_class.coe
- map_top : ∀ (f : F), ⇑f ⊤ = ⊤
top_hom_class F α β
states that F
is a type of ⊤
-preserving morphisms.
You should extend this class when you extend top_hom
.
Instances of this typeclass
Instances of other typeclasses for top_hom_class
- top_hom_class.has_sizeof_inst
- coe : F → Π (a : α), (λ (_x : α), β) a
- coe_injective' : function.injective bot_hom_class.coe
- map_bot : ∀ (f : F), ⇑f ⊥ = ⊥
bot_hom_class F α β
states that F
is a type of ⊥
-preserving morphisms.
You should extend this class when you extend bot_hom
.
Instances of this typeclass
Instances of other typeclasses for bot_hom_class
- bot_hom_class.has_sizeof_inst
- coe : F → Π (a : α), (λ (_x : α), β) a
- coe_injective' : function.injective bounded_order_hom_class.coe
- map_rel : ∀ (f : F) {a b : α}, a ≤ b → ⇑f a ≤ ⇑f b
- map_top : ∀ (f : F), ⇑f ⊤ = ⊤
- map_bot : ∀ (f : F), ⇑f ⊥ = ⊥
bounded_order_hom_class F α β
states that F
is a type of bounded order morphisms.
You should extend this class when you extend bounded_order_hom
.
Instances of this typeclass
Instances of other typeclasses for bounded_order_hom_class
- bounded_order_hom_class.has_sizeof_inst
Equations
- bounded_order_hom_class.to_top_hom_class = {coe := bounded_order_hom_class.coe _inst_5, coe_injective' := _, map_top := _}
Equations
- bounded_order_hom_class.to_bot_hom_class = {coe := bounded_order_hom_class.coe _inst_5, coe_injective' := _, map_bot := _}
Equations
- order_iso_class.to_top_hom_class = {coe := rel_hom_class.coe (show order_hom_class F α β, from infer_instance), coe_injective' := _, map_top := _}
Equations
- order_iso_class.to_bot_hom_class = {coe := rel_hom_class.coe (show order_hom_class F α β, from infer_instance), coe_injective' := _, map_bot := _}
Equations
- order_iso_class.to_bounded_order_hom_class = {coe := rel_hom_class.coe (show order_hom_class F α β, from infer_instance), coe_injective' := _, map_rel := _, map_top := _, map_bot := _}
Top homomorphisms #
Equations
- top_hom.top_hom_class = {coe := top_hom.to_fun _inst_2, coe_injective' := _, map_top := _}
Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun
directly.
Equations
Equations
- top_hom.partial_order = partial_order.lift coe_fn top_hom.partial_order._proof_1
Equations
- top_hom.semilattice_inf = function.injective.semilattice_inf coe_fn top_hom.semilattice_inf._proof_1 top_hom.semilattice_inf._proof_2
Equations
- top_hom.semilattice_sup = function.injective.semilattice_sup coe_fn top_hom.semilattice_sup._proof_1 top_hom.semilattice_sup._proof_2
Equations
- top_hom.lattice = function.injective.lattice coe_fn top_hom.lattice._proof_1 top_hom.lattice._proof_2 top_hom.lattice._proof_3
Equations
- top_hom.distrib_lattice = function.injective.distrib_lattice coe_fn top_hom.distrib_lattice._proof_1 top_hom.distrib_lattice._proof_2 top_hom.distrib_lattice._proof_3
Bot homomorphisms #
Equations
- bot_hom.bot_hom_class = {coe := bot_hom.to_fun _inst_2, coe_injective' := _, map_bot := _}
Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun
directly.
Equations
Equations
- bot_hom.partial_order = partial_order.lift coe_fn bot_hom.partial_order._proof_1
Equations
- bot_hom.semilattice_inf = function.injective.semilattice_inf coe_fn bot_hom.semilattice_inf._proof_1 bot_hom.semilattice_inf._proof_2
Equations
- bot_hom.semilattice_sup = function.injective.semilattice_sup coe_fn bot_hom.semilattice_sup._proof_1 bot_hom.semilattice_sup._proof_2
Equations
- bot_hom.lattice = function.injective.lattice coe_fn bot_hom.lattice._proof_1 bot_hom.lattice._proof_2 bot_hom.lattice._proof_3
Equations
- bot_hom.distrib_lattice = function.injective.distrib_lattice coe_fn bot_hom.distrib_lattice._proof_1 bot_hom.distrib_lattice._proof_2 bot_hom.distrib_lattice._proof_3
Bounded order homomorphisms #
Reinterpret a bounded_order_hom
as a top_hom
.
Equations
- f.to_top_hom = {to_fun := f.to_order_hom.to_fun, map_top' := _}
Reinterpret a bounded_order_hom
as a bot_hom
.
Equations
- f.to_bot_hom = {to_fun := f.to_order_hom.to_fun, map_bot' := _}
Equations
- bounded_order_hom.bounded_order_hom_class = {coe := λ (f : bounded_order_hom α β), f.to_order_hom.to_fun, coe_injective' := _, map_rel := _, map_top := _, map_bot := _}
Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun
directly.
Copy of a bounded_order_hom
with a new to_fun
equal to the old one. Useful to fix
definitional equalities.
id
as a bounded_order_hom
.
Equations
- bounded_order_hom.id α = {to_order_hom := {to_fun := order_hom.id.to_fun, monotone' := _}, map_top' := _, map_bot' := _}
Equations
- bounded_order_hom.inhabited α = {default := bounded_order_hom.id α _inst_5}
Composition of bounded_order_hom
s as a bounded_order_hom
.
Equations
- f.comp g = {to_order_hom := {to_fun := (f.to_order_hom.comp g.to_order_hom).to_fun, monotone' := _}, map_top' := _, map_bot' := _}
Dual homs #
Reinterpret a bounded order homomorphism as a bounded order homomorphism between the dual orders.
Equations
- bounded_order_hom.dual = {to_fun := λ (f : bounded_order_hom α β), {to_order_hom := ⇑order_hom.dual f.to_order_hom, map_top' := _, map_bot' := _}, inv_fun := λ (f : bounded_order_hom αᵒᵈ βᵒᵈ), {to_order_hom := ⇑(order_hom.dual.symm) f.to_order_hom, map_top' := _, map_bot' := _}, left_inv := _, right_inv := _}