The Yoneda Lemma
There are two distinct theorems called “the Yoneda Lemma”
Let C be a locally small category, and let F:C→Set be a functor.
Then for every A∈C exists a bijection
Hom(Hom(A,−),F)≅SetF(A)
Here Hom(A,−) is the covariant hom-functor represented by A and Hom(Hom(A,−),F) is the set of natural transformations Hom(A,−)⇒F. Hence we are drawing a one-to-one correspondence between natural transformations α:Hom(A,−)⇒F and values a∈F(A).
I think of this as telling us that an element of F(A) is ‘essentially the same thing as’ or perhaps ‘just as good as’ a natural transformation Hom(A,−)⇒F.
This bijection is given in particular by the following two mappings. We have
Φ:Hom(Hom(A,−),F)→F(A)Φ(α)=αA(1A)
and in the other direction we have
Ψ:F(A)→Hom(Hom(A,−),F)Ψ(a)c=F(f)(a)
Note the subscript c; this is because each Ψ(a) is a natural transformation: we are defining it component-wise.
For a category C, let
よ:C→Fun(Set,Cop)
be given by
よ(c)よ(f:c→c′)=C(−,c)=(f∘−:C(−,c)⇒C(−,c′))
then よ is a full and faithful embedding.
Conceptually what this gives us is a correspondence between morphisms in C and natural transformations between represented functors of C.