How to prove the sheafification is a sheaf? I know that this question might be too easy for you, but I have to study on my own, so please explain for me. 
In the page 64, Hartshone defined the sheafification of a presheaf $\mathcal{F}$ by assign for each open set $U$ a set $\mathcal{F}^{+}(U)$ containing all the function $s$ from $U$ to $\cup_{P\in U}\mathcal{F}_{P}$, satisfying some specific conditions. 
I can see that $\mathcal{F}^{+}$ is a presheaf. 
My question is: How can I prove that $\mathcal{F}^{+}$ is a sheaf by proving it satisfies two gluing condition (on page 61). I really want to see that proof rigorously. 
Please help me. Thanks. 
 A: As stated in the comments, the axioms of sheaf can be checked directly using the conditions imposed on the functions in $\mathcal{F}^+ (U)$. Let's just write them down as they are presented in Hartshorne's book:


*

*for each $P\in U$, we have $s(P)\in \mathcal{F}_P$;

*for each $P\in U$, there exists a neighborhood $V$ of $P$, contained in $U$, and an element $t\in \mathcal{F}(V)$ such that for all $Q\in V$ the germ $t_Q$ of $t$ at $Q$ is equal to $s(Q)$.


Using these we need to prove two conditions for $\mathcal{F}^+$ being a sheaf. 
First: let $U$ be an open set, $ \lbrace V_i \rbrace $ an open covering of $U$, and $s\in \mathcal{F}^+(U) $ such that $s_{|V_i}=0$ for all $i$. Then $s$ must be equal to $0$.
This is true: $s=0$ means that $s(P)=0$ for each $P$ in $U$. Take any $P$ in $U$, then there exists an open set $V_i$ that contains $P$, hence $0=s_{|V_i}(P)=s(P)$, and this verifies the axiom.
Second: suppose we have, for each $i$, an element $s_i\in \mathcal{F}^+(V_i)$, so that $s_{i|V_i \cap V_j}=s_{j|V_i\cap V_j}$ whenever this makes sense. Then we have to find $s\in \mathcal{F}^+(U)$ such that $s_i=s_{|V_i}$ for each $i$. 
Such $s$ can be constructed directly: take any point $P$ in $U$ and the open set $V_i$ which contains $P$, and define $s(P)=s_i(P)$. This is a good definition because the $s_i$'s agree on the intersections, all is left to check is that $s$ satisfies the conditions of the sheafification. The first one is ok, because it's verified by the $s_i$'s, for the second one, just consider that you can apply the condition to the $s_i$: this will give you an open neighborhood $W_i$ contained in $V_i$ and containing $P$, with an element $t_i\in \mathcal{F}(W_i)$ as above. Since $W_i$ is open in $V_i$, which is open in $U$, the set $W_i$ is suitable also for the function $s$ we have just defined.
This proves that $\mathcal{F}^+$ is a sheaf, and a bit more of similar manipulation yields that all of its stalks are isomorphic to the stalks of $\mathcal{F}$.
I hope this can work.
P.S. There is a very compact way to describe the sheafification (easy to remember at least): one can write
$$
\mathcal{F}^+(U)=\varprojlim_{p\in U}\varinjlim_{p\in V} \mathcal{F}(V)
$$
