In mathematics, specifically in , hom-sets (i.e. sets of morphisms between ) give rise to important functors to the . These functors are called hom-functors and have numerous applications in category theory and other branches of mathematics. Let C be a (i.e. a for which hom-classes are actually sets and not proper classes). For all objects A and B in C we define two functors to the as follows: {| class=wikitable |- ! Hom(A, –) : C → Set
! Hom(–, B) : C → Set |
---|
This is a covariant functor given by: |
Hom(A, –) maps each object X in C to the set of morphisms, Hom(A, X) |
Hom(A, –) maps each morphism f : X → Y to the function |
Hom(A, f) : Hom(A, X) → Hom(A, Y) given by |
for each g in Hom(A, X). |
This is a contravariant functor given by: |
Hom(–, B) maps each object X in C to the set of morphisms, Hom(X, B) |
Hom(–, B) maps each morphism h : X → Y to the function |
Hom(h, B) : Hom(Y, B) → Hom(X, B) given by |
for each g in Hom(Y, B). |
} |
The functor Hom(–, B) is also called the functor of points of the object B. |
Note that fixing the first argument of Hom naturally gives rise to a covariant functor and fixing the second argument naturally gives a contravariant functor. This is an artifact of the way in which one must compose the morphisms. |
The pair of functors Hom(A, –) and Hom(–, B) are related in a natural manner. For any pair of morphisms f : B → B′ and h : A′ → A the following diagram commutes: |
Both paths send g : A → B to f ∘ g ∘ h : A′ → B′. |
The commutativity of the above diagram implies that Hom(–, –) is a bifunctor from C × C to Set which is contravariant in the first argument and covariant in the second. Equivalently, we may say that Hom(–, –) is a bifunctor |
Hom(–, –) : Cop × C → Set |
where Cop is the to C. The notation HomC(–, –) is sometimes used for Hom(–, –) in order to emphasize the category forming the domain. |
Yoneda lemma |
Referring to the above commutative diagram, one observes that every morphism |
h : A′ → A |
gives rise to a natural transformation |
Hom(h, –) : Hom(A, –) → Hom(A′, –) |
and every morphism |
f : B → B′ |
gives rise to a natural transformation |
Hom(–, f) : Hom(–, B) → Hom(–, B′) |
Yoneda's lemma implies that every natural transformation between Hom functors is of this form. |