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.
module _ {o β} {C : Precategory o β} where open Cat.Reasoning C private module PSh[C] = Cat.Reasoning Cat[ C ^op , Sets β ] module CoPSh[C] = Cat.Reasoning Cat[ C , Sets β ] module γ = Cat.Functor.Morphism (γ C) module γcov = Cat.Functor.Morphism (γcov C) private variable x y z : Ob f g h : Hom x y open _=>_
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)