Preorders as categories #
We install a category instance on any preorder. This is not to be confused with the category of
preorders, defined in Order.Category.Preorder
.
We show that monotone functions between preorders correspond to functors of the associated categories.
Main definitions #
homOfLE
andleOfHom
provide translations between inequalities in the preorder, and morphisms in the associated category.Monotone.functor
is the functor associated to a monotone function.
The category structure coming from a preorder. There is a morphism X ⟶ Y
if and only if X ≤ Y
.
Because we don't allow morphisms to live in Prop
,
we have to define X ⟶ Y
as ULift (PLift (X ≤ Y))
.
See CategoryTheory.homOfLE
and CategoryTheory.leOfHom
.
See https://stacks.math.columbia.edu/tag/00D3.
Equations
Equations
- ⋯ = ⋯
Express an inequality as a morphism in the corresponding preorder category.
Equations
- CategoryTheory.homOfLE h = { down := { down := h } }
Instances For
Extract the underlying inequality from a morphism in a preorder category.
Equations
Instances For
Construct a morphism in the opposite of a preorder category from an inequality.
Equations
Instances For
Equations
- CategoryTheory.uniqueToTop = { default := CategoryTheory.homOfLE ⋯, uniq := ⋯ }
Equations
- CategoryTheory.uniqueFromBot = { default := CategoryTheory.homOfLE ⋯, uniq := ⋯ }
A monotone function between preorders induces a functor between the associated categories.
Equations
- h.functor = { obj := f, map := fun {X_1 Y_1 : X} (g : X_1 ⟶ Y_1) => CategoryTheory.homOfLE ⋯, map_id := ⋯, map_comp := ⋯ }
Instances For
A functor between preorder categories is monotone.
A categorical equivalence between partial orders is just an order isomorphism.
Equations
- e.toOrderIso = { toFun := e.functor.obj, invFun := e.inverse.obj, left_inv := ⋯, right_inv := ⋯, map_rel_iff' := ⋯ }