Documentation

Mathlib.Order.Category.PartOrd

Category of partial orders #

This defines PartOrd, the category of partial orders with monotone maps.

structure PartOrd :
Type (u_1 + 1)

The category of partial orders.

  • of :: (
    • carrier : Type u_1

      The underlying partially ordered type.

    • str : PartialOrder ↑self
  • )
Instances For
    @[implicit_reducible]
    instance PartOrd.instCoeSortType :
    CoeSort PartOrd (Type u_1)
    structure PartOrd.Hom (X Y : PartOrd) :

    The type of morphisms in PartOrd R.

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

      Turn a morphism in PartOrd back into a OrderHom.

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

        Typecheck a OrderHom as a morphism in PartOrd.

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

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

          Instances For

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

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

            Constructs an equivalence between partial orders from an order isomorphism between them.

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

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

              Instances For

                Antisymmetrization as a functor. It is the free functor.

                Instances For

                  preordToPartOrd is left adjoint to the forgetful functor, meaning it is the free functor from Preord to PartOrd.

                  Instances For