module Cat.Functor.Hom.Properties where

Properties of hom functors🔗

This module contains a collection of useful facts about Hom functors, and the Yoneda embedding.

Monos and epis🔗

The Yoneda embedding preserves monomorphisms. Let be a mono, and let be a pair of natural transformations such that Equality of natural transformations is defined componentwise, so for every and we have Since is a mono, we can immediately deduce that

  よ-preserves-mono : is-monic f  PSh[C].is-monic (よ₁ C f)
  よ-preserves-mono f-mono α β p = ext λ x px 
    f-mono (α .η x px) (β .η x px) (unext p x px)

Furthermore, the Yoneda embedding is fully faithful, so it reflects both monos and epis.

  よ-reflects-mono : PSh[C].is-monic (よ₁ C f)  is-monic f
  よ-reflects-mono = よ.faithful→reflects-mono (よ-is-faithful C)

  よ-reflects-epi : PSh[C].is-epic (よ₁ C f)  is-epic f
  よ-reflects-epi = よ.faithful→reflects-epi (よ-is-faithful C)

Likewise, the covariant Yoneda embedding takes epis to monos, reflects monos to epis, and vice versa.

  よcov-reverses-epi : is-epic f  CoPSh[C].is-monic (よcov₁ C f)
  よcov-reverses-epi {f = f} f-epic α β p = ext λ x px 
    f-epic (α .η x px) (β .η x px) (unext p x px)

  よcov-reflects-mono-to-epi : CoPSh[C].is-monic (よcov₁ C f)  is-epic f
  よcov-reflects-mono-to-epi = よcov.faithful→reflects-mono (よcov-is-faithful C)

  よcov-reflects-epi-to-mono : CoPSh[C].is-epic (よcov₁ C f)  is-monic f
  よcov-reflects-epi-to-mono = よcov.faithful→reflects-epi (よcov-is-faithful C)