Proof of Yoneda Lemma Can anyone explain to me Yoneda Lemma proof in great details? i.e. they usually say " ... it is easy to see that these morphisms are inverse to each other.." without explanation. 
 A: A presheaf $F$ is simply a contravarient functor $C^{op} \to \text{Sets}$. 
Please refer to these two sources for more details on the proof.  These are the two that, combined, I found most useful:


*

*nLab

*Stacks Project
Now I will reconstruct from my notes, what I've learned.  Let $C$ be a locally small category.  
Let $C(-, c) \equiv \text{Hom}_C(-, c) \equiv \text{Mor}_C(-, c) \equiv h_c$.  These are all just notations for the same thing, the contravariant hom functor.  $C(-, c)$ is contravariant and $C(c, -)$ is covariant.  Make sure you understand those first.
For $f : y \to x$ in $C$ we have the morphism of hom sets $C(x, c) \xrightarrow{C(f,c)} C(y,c)$ where $C(f, c) \equiv - \circ f$ ie composition by $f$ on the right.  Clearly composition on the right would change the domain, so to remember $C(f, c) \equiv -\circ f$ just remember that $f$ is in the place of the domain in the expression $C(f, c)$.
$C(-,c)$ is a presheaf.  The presheaves form the category $\text{Psh}(C) = \text{Fun}(C^{op}, \text{Sets})$ where morphisms are natural transformations of functors.  By defintion a natural transformation of functors $F \xrightarrow{\phi} G$, where $F, G : C \to D$ is a collection of maps $\{\phi_x\}_{x \in \text{Ob}(C)}$ such that the following commutes for every $f : y \to x$ in $C$:
$$
\begin{matrix}
F(y) & \xrightarrow{F(f)} & F(x) \\
\downarrow \phi_y & \ & \downarrow\phi_x\\
G(y) & \xrightarrow{G(f)} & G(x)
\end{matrix}
$$
Now, for any morphism $\phi : u \to v $ in $C$ there corresponds a natural map of hom functors $h_u \to h_v$ (now we've switched notation; see above) given by composing with $\phi$: i.e. by letting each $\phi_z = \phi$.    We will show this.
$$
g \in h_u(y) = \text{Mor}_C(y, u) \\
  \implies h_u(f)\circ \phi_y (g) = h_u(f) \circ (\phi\circ g) = \phi\circ g \circ f
$$
Remember that $h_u(f) \equiv -\circ f$.  Similarly, 
$$
\phi_x \circ h_v(f) (g) = \phi_x \circ (g\circ f) = \phi\circ g\circ f
$$
So that we have a similar naturality diagram to the above:
$$
\begin{matrix}
h_u(y) & \xrightarrow{h_u(f)} & h_u(x) \\
\downarrow \phi_y & \ & \downarrow \phi_x \\
h_v(y) & \xrightarrow{h_v(f)} & h_v(x)
\end{matrix}
$$
Such an induced natural map is given the notation $h(\phi)$.  So that resolves that confusion I personally had.  In other words $h(\phi)_z \equiv \phi_z = \phi$.

Now the first part of the Yoneda lemma from the Stacks Project is:

Lemma 4.3.5 (Yoneda lemma).  Let $u,v \in \text{Ob}(C)$.  Given any morphism of functors $s : h_u \to h_v$ there is a unique morphism $\phi : u \to v$ such that $h(\phi) = s$.

Proof.  In the previous diagram above, replace $\phi$ with $s$ to match up notations:
$$
\begin{matrix}
h_u(y) & \xrightarrow{h_u(f)} & h_u(x) \\
\downarrow s_y & \ & \downarrow s_x \\
h_v(y) & \xrightarrow{h_v(f)} & h_v(x)
\end{matrix}
$$
The above diagram must be satisfied for all $f : y \to x$ for $s$ to be a "morphism of functors" (a natural transformation of functors).  Knowing that, the try the diagram out on $x = u$ itself!  In other words let $f : x \to u$ be any arrow in $C$ with codomain $u$:
$$
\begin{matrix}
h_u(u) & \xrightarrow{h_u(f)} & h_u(x) \\
\downarrow s_u & \ & \downarrow s_x \\
h_v(u) & \xrightarrow{h_v(f)} & h_v(x)
\end{matrix}
$$
Now take (define) $\phi = s_u(1_u)$.  Then by this diagram above we already have $h_v(f)\circ s_u = s_v\circ h_u(f)$ so that we have $\phi_v \circ f = h_v(f) \circ \phi_v = h_v(f) \circ s_u (1_u) = s_v \circ h_u(f) (1_u) = s_v \circ f$ (Remember $\phi_z = \phi \ \forall z$ including $z = v$).  Whenever two maps agree on all maps into them, they must be equal maps. Thus $\phi_v = s_v$ or in other words the natural map $h(\phi)$ as defined above equals the natural map $s$, or $h(\phi) = s$.  Now to show uniqueness, we only need to look at the fact that $h_v(f)\circ s_u(1_u) = s_u(f) = \phi_u(f)$.  Clearly this must be the case for any $h(\phi') = s$ as well.  Thus $\phi = s_u(1_u)$ is uniquely defined and such $\phi$ that $h(\phi) = s$ is then unique. $\square$.
That takes care of the first part.

Next,

In other words the functor $h$ is fully faithful.

The functor $h$ is as we have been using it:
$$
\text{Ob}(C) \ni u \mapsto h_u \in \text{PSh}(C) \\
h : (\phi : u \to v) \mapsto (h(\phi) : h_u \to h_v)
$$
Since for each $s$ in $\text{Psh}(C)$ we have that $h(\phi) = s$ clearly, the map is bijective.  But ah! We've made a mistake in our reasoning,  we only showed bijectivity onto the subcategory of presheaves of the form $h_u$ ie. the hom-sets.  Well, it turns out that the exact same arguments as above can be restated for the commuting square:
$$
\begin{matrix}
h_u(u) & \xrightarrow{h_u(f)} & F(x) \\
\downarrow s_u & \ & \downarrow s_x \\
h_v(u) & \xrightarrow{F(f)} & F(x)
\end{matrix}
$$
where $F$ is any presheaf.  So that patches up that.

Now for the last part:

More generally, given any contravariant functor $F$ and any object $u$ of $C$, we have a natural bijection
  $$
\Phi:\text{Mor}_{\text{Psh}}(C)(h_u, F) \to F(u), \ s \mapsto s_u(1_u)
$$

Note that one direction of the bijection $\Phi$ is already listed.  We need to show that $\Phi$ is a bijection so it suffices to show an inverse map $\Psi$.  Well, let $\xi \in F(u)$, then $\Psi(\xi) = s$ where $s_v : h_u(v) \to F(v) : \ (f: v\to u ) \to F(f)(\xi)$ are the components of the natural map $s$ they say in the Stacks Project, will work.  Well (this is a little iffy, but:)
$$
(\Psi \circ \Phi(s))_v(f) = (\Psi \circ (s_u \circ 1_u))_v(f) = (F(f)(s_u \circ 1_u))_v = s_v \circ h_u(f) \circ 1_u = s_v(f) \\
\square
$$
Thus $\Psi\circ\Phi(s) = s$ and we're done.  I don't know what they mean by a natural bijection though.  Thus we've proved the last part of Yoneda's Lemma sometimes expressed as:
$$
\text{Nat}(h_u, F) \simeq F(u)
$$
