module Cat.Bi.Functor.Hom {o h } (C : Prebicategory o h ) where

The bicategorical Hom functor🔗

The Hom functor, which assigns to a pair of objects the set of morphisms between them, has a direct analogue in bicategories. In a bicategory the morphisms between two objects form a category instead of a set, so in this setting we get a pseudofunctor.

Here, we define the covariant mapping for a fixed object in The action of this pseudofunctor on 1-cells must take a 1-cell in to a functor and this action itself should be functorial. In other words, we need a bifunctor But we already have such a bifunctor: the composition bifunctor of

To complete this into a pseudofunctor, we must give a compositor natural isomorphism with components and a unitor With acting by composition, we can unfold the definitions to see that each component of the compositor should itself be a natural transformation, with components and similarly the unitor should be a natural transformation with components Luckily, we have such natural transformations available to us: the associator and left unitor in

module _ (X : Ob) where

  Hom-from-bi : Pseudofunctor C (Cat h )
  Hom-from-bi = pf module Hom-from-bi where
    compositor
      :  {A B C}
       Uncurry Cat.compose F∘ (compose {X} {B} {C}  compose {X} {A} {B})
      => compose F∘ Uncurry compose
    compositor .η (f , g)              = ▶-assoc.from
    compositor .is-natural _ _ (α , β) = ext λ h 
         extendl (◀-assoc.to .is-natural _ _ _)
      ∙∙ cdr (◀-▶-comm.from .is-natural _ _ _) ∙∙ ◀.pulll refl

    lf : Lax-functor C (Cat h )
    lf .Lf.P₀            = Hom X
    lf .Lf.P₁            = compose
    lf .Lf.compositor    = compositor
    lf .Lf.unitor        = unitor-l.to
    lf .Lf.hexagon f g h = ext λ _  bicat! C
    lf .Lf.right-unit f  = ext λ _  bicat! C
    lf .Lf.left-unit f   = ext λ _  bicat! C

    pf : Pseudofunctor _ _
    pf .Pf.lax              = lf
    pf .Pf.unitor-inv       = Cr.iso→invertible Cat[ _ , _ ] unitor-l
    pf .Pf.compositor-inv _ = Cr.iso→invertible Cat[ _ , _ ] (▶-assoc ni⁻¹)

Note that if we unpack the definition, we see that the covariant action of the works by postcomposition, just like in a precategory.