Documentation

Mathlib.CategoryTheory.Category.Preorder

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 #

@[instance 100]

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.

Stacks Tag 00D3

Equations
    instance Preorder.subsingleton_hom {α : Type u} [Preorder α] (U V : α) :
    def CategoryTheory.homOfLE {X : Type u} [Preorder X] {x y : X} (h : x y) :
    x y

    Express an inequality as a morphism in the corresponding preorder category.

    Equations
      Instances For
        @[reducible, inline]
        abbrev LE.le.hom {X : Type u_1} [Preorder X] {x y : X} (h : x y) :
        x y

        Express an inequality as a morphism in the corresponding preorder category.

        Equations
          Instances For
            @[simp]
            theorem CategoryTheory.homOfLE_refl {X : Type u} [Preorder X] {x : X} (h : x x) :
            @[simp]
            theorem CategoryTheory.homOfLE_comp {X : Type u} [Preorder X] {x y z : X} (h : x y) (k : y z) :
            theorem CategoryTheory.leOfHom {X : Type u} [Preorder X] {x y : X} (h : x y) :
            x y

            Extract the underlying inequality from a morphism in a preorder category.

            @[reducible, inline]
            abbrev Quiver.Hom.le {X : Type u_1} [Preorder X] {x y : X} (h : x y) :
            x y

            Extract the underlying inequality from a morphism in a preorder category.

            Equations
              Instances For
                @[simp]
                theorem CategoryTheory.homOfLE_leOfHom {X : Type u} [Preorder X] {x y : X} (h : x y) :
                .hom = h
                theorem CategoryTheory.homOfLE_isIso_of_eq {X : Type u} [Preorder X] {x y : X} (h : x y) (heq : x = y) :
                @[simp]
                theorem CategoryTheory.homOfLE_comp_eqToHom {X : Type u} [Preorder X] {a b c : X} (hab : a b) (hbc : b = c) :
                theorem CategoryTheory.homOfLE_comp_eqToHom_assoc {X : Type u} [Preorder X] {a b c : X} (hab : a b) (hbc : b = c) {Z : X} (h : c Z) :
                @[simp]
                theorem CategoryTheory.eqToHom_comp_homOfLE {X : Type u} [Preorder X] {a b c : X} (hab : a = b) (hbc : b c) :
                theorem CategoryTheory.eqToHom_comp_homOfLE_assoc {X : Type u} [Preorder X] {a b c : X} (hab : a = b) (hbc : b c) {Z : X} (h : c Z) :
                @[simp]
                theorem CategoryTheory.homOfLE_op_comp_eqToHom {X : Type u} [Preorder X] {a b c : X} (hab : b a) (hbc : Opposite.op b = Opposite.op c) :
                @[simp]
                theorem CategoryTheory.eqToHom_comp_homOfLE_op {X : Type u} [Preorder X] {a b c : X} (hab : Opposite.op a = Opposite.op b) (hbc : c b) :

                Construct a morphism in the opposite of a preorder category from an inequality.

                Equations
                  Instances For
                    instance CategoryTheory.uniqueToTop {X : Type u} [Preorder X] [OrderTop X] {x : X} :
                    Equations
                      instance CategoryTheory.uniqueFromBot {X : Type u} [Preorder X] [OrderBot X] {x : X} :
                      Equations

                        The equivalence of categories from the order dual of a preordered type X to the opposite category of the preorder X.

                        Equations
                          Instances For
                            @[simp]
                            theorem CategoryTheory.orderDualEquivalence_inverse_map (X : Type u) [Preorder X] {X✝ Y✝ : Xᵒᵖ} (f : X✝ Y✝) :
                            @[simp]
                            theorem CategoryTheory.orderDualEquivalence_functor_map (X : Type u) [Preorder X] {X✝ Y✝ : Xᵒᵈ} (f : X✝ Y✝) :
                            @[simp]
                            theorem CategoryTheory.orderDualEquivalence_counitIso (X : Type u) [Preorder X] :
                            (orderDualEquivalence X).counitIso = Iso.refl ({ obj := fun (x : Xᵒᵖ) => OrderDual.toDual (Opposite.unop x), map := fun {X_1 Y : Xᵒᵖ} (f : X_1 Y) => homOfLE , map_id := , map_comp := }.comp { obj := fun (x : Xᵒᵈ) => Opposite.op (OrderDual.ofDual x), map := fun {X_1 Y : Xᵒᵈ} (f : X_1 Y) => (homOfLE ).op, map_id := , map_comp := })
                            def Monotone.functor {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] {f : XY} (h : Monotone f) :

                            A monotone function between preorders induces a functor between the associated categories.

                            Equations
                              Instances For
                                @[simp]
                                theorem Monotone.functor_obj {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] {f : XY} (h : Monotone f) :
                                instance instFullFunctor {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (f : X ↪o Y) :
                                def OrderIso.equivalence {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (e : X ≃o Y) :
                                X Y

                                The equivalence of categories X ≌ Y induced by e : X ≃o Y.

                                Equations
                                  Instances For
                                    @[simp]
                                    theorem OrderIso.equivalence_functor {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (e : X ≃o Y) :
                                    @[simp]
                                    theorem OrderIso.equivalence_inverse {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (e : X ≃o Y) :
                                    theorem CategoryTheory.Functor.monotone {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (f : Functor X Y) :

                                    A functor between preorder categories is monotone.

                                    def CategoryTheory.Functor.toOrderHom {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (F : Functor X Y) :
                                    X →o Y

                                    A functor X ⥤ Y between preorder categories as an OrderHom.

                                    Equations
                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.Functor.toOrderHom_coe {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (F : Functor X Y) (a✝ : X) :
                                        F.toOrderHom a✝ = F.obj a✝
                                        @[reducible, inline]
                                        abbrev OrderHom.toFunctor {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (f : X →o Y) :

                                        An OrderHom as a functor X ⥤ Y between preorder categories.

                                        Equations
                                          Instances For

                                            The equivalence between X →o Y and the type of functors X ⥤ Y between preorder categories X and Y.

                                            Equations
                                              Instances For
                                                @[simp]
                                                theorem OrderHom.equivFunctor_apply {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (f : X →o Y) :

                                                The categorical equivalence between the category of monotone functions X →o Y and the category of functors X ⥤ Y, where X and Y are preorder categories.

                                                Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem OrderHom.equivalenceFunctor_functor_obj_obj {X : Type u} {Y : Type v} [Preorder X] [Preorder Y] (f : X →o Y) (a : X) :
                                                    theorem CategoryTheory.Iso.to_eq {X : Type u} [PartialOrder X] {x y : X} (f : x y) :
                                                    x = y

                                                    A categorical equivalence between partial orders is just an order isomorphism.

                                                    Equations
                                                      Instances For
                                                        @[simp]
                                                        theorem CategoryTheory.Equivalence.toOrderIso_apply {X : Type u} {Y : Type v} [PartialOrder X] [PartialOrder Y] (e : X Y) (x : X) :
                                                        @[simp]
                                                        theorem PartialOrder.isIso_iff_eq {X : Type u} [PartialOrder X] {a b : X} (f : a b) :