Documentation

Mathlib.Order.Category.Preord

Category of preorders #

This defines Preord, the category of preorders with monotone maps.

structure Preord :
Type (u_1 + 1)

The category of preorders.

  • of :: (
    • carrier : Type u_1

      The underlying preordered type.

    • str : Preorder ↑self
  • )
Instances For
    structure Preord.Hom (X Y : Preord) :

    The type of morphisms in Preord R.

    Instances For
      theorem Preord.Hom.ext {X Y : Preord} {x y : X.Hom Y} (hom' : x.hom' = y.hom') :
      x = y
      theorem Preord.Hom.ext_iff {X Y : Preord} {x y : X.Hom Y} :
      x = y ↔ x.hom' = y.hom'
      @[reducible, inline]
      abbrev Preord.Hom.hom {X Y : Preord} (f : X.Hom Y) :
      ↑X β†’o ↑Y

      Turn a morphism in Preord back into a OrderHom.

      Equations
        Instances For
          @[reducible, inline]
          abbrev Preord.ofHom {X Y : Type u} [Preorder X] [Preorder Y] (f : X β†’o Y) :
          { carrier := X, str := inst✝ } ⟢ { carrier := Y, str := inst✝¹ }

          Typecheck a OrderHom as a morphism in Preord.

          Equations
            Instances For
              def Preord.Hom.Simps.hom (X Y : Preord) (f : X.Hom Y) :
              ↑X β†’o ↑Y

              Use the ConcreteCategory.hom projection for @[simps] lemmas.

              Equations
                Instances For

                  The results below duplicate the ConcreteCategory simp lemmas, but we can keep them for dsimp.

                  theorem Preord.ext {X Y : Preord} {f g : X ⟢ Y} (w : βˆ€ (x : ↑X), (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom g) x) :
                  f = g
                  theorem Preord.coe_of (X : Type u) [Preorder X] :
                  ↑{ carrier := X, str := inst✝ } = X
                  theorem Preord.hom_ext {X Y : Preord} {f g : X ⟢ Y} (hf : Hom.hom f = Hom.hom g) :
                  f = g
                  @[simp]
                  theorem Preord.hom_ofHom {X Y : Type u} [Preorder X] [Preorder Y] (f : X β†’o Y) :
                  @[simp]
                  theorem Preord.ofHom_hom {X Y : Preord} (f : X ⟢ Y) :
                  @[simp]
                  theorem Preord.ofHom_id {X : Type u} [Preorder X] :
                  ofHom OrderHom.id = CategoryTheory.CategoryStruct.id { carrier := X, str := inst✝ }
                  def Preord.Iso.mk {Ξ± Ξ² : Preord} (e : ↑α ≃o ↑β) :
                  Ξ± β‰… Ξ²

                  Constructs an equivalence between preorders from an order isomorphism between them.

                  Equations
                    Instances For
                      @[simp]
                      theorem Preord.Iso.mk_hom {Ξ± Ξ² : Preord} (e : ↑α ≃o ↑β) :
                      (mk e).hom = ofHom ↑e
                      @[simp]
                      theorem Preord.Iso.mk_inv {Ξ± Ξ² : Preord} (e : ↑α ≃o ↑β) :
                      (mk e).inv = ofHom ↑e.symm
                      @[simp]
                      theorem Preord.dual_map {X✝ Y✝ : Preord} (f : X✝ ⟢ Y✝) :

                      The equivalence between Preord and itself induced by OrderDual both ways.

                      Equations
                        Instances For

                          The embedding of Preord into Cat.

                          Equations
                            Instances For
                              @[simp]
                              theorem preordToCat_map {X✝ Y✝ : Preord} (f : X✝ ⟢ Y✝) :