sheafification
Sometimes a perfectly natural construction gives you a presheaf that just misses being a sheaf — it fails to glue, or it has too many sections that look locally trivial. Throwing the construction away would be wasteful. Sheafification is the universal repair: it takes any presheaf and produces the sheaf closest to it, changing as little as possible while forcing the locality and gluing axioms to hold. The slogan is that a presheaf and its sheafification have exactly the same stalks — the local, point-by-point data is preserved; only the global bookkeeping is corrected.
Concretely, the sheafification F+ of a presheaf F has, over an open set U, the sections that are 'locally consistent germ-fields': a section of F+ over U is a function s assigning to each point p in U a germ s(p) in the stalk F_p, subject to the condition that near each point this field of germs is actually represented by a genuine section of F on some neighborhood. This automatically satisfies separation (a germ-field equal on each cover piece is equal) and gluing (compatible germ-fields on cover pieces patch). The construction comes with a natural presheaf map F -> F+, and it is universal: any presheaf map from F into a sheaf G factors uniquely through F+. In categorical terms, sheafification is the left adjoint to the inclusion of sheaves into presheaves, and F is already a sheaf exactly when F -> F+ is an isomorphism.
Sheafification is indispensable because many operations leave the category of sheaves: the image of a morphism of sheaves, the cokernel, the tensor product, the pullback (inverse image), and the constant sheaf are all first built as presheaves and then sheafified. A frequent confusion: sheafification does NOT change stalks, so it cannot add or remove local information — if a presheaf already separates sections correctly it only fixes gluing, and the constant presheaf with value A sheafifies to the sheaf of LOCALLY constant A-valued functions, which on a disconnected space is genuinely bigger. Do not expect sheafification to 'simplify' a presheaf; it can enlarge the sections to accommodate gluing.
On the two-point discrete space X = {a, b}, the constant presheaf with value Z sends X and each point to Z, with identity restrictions. It fails gluing: pick 1 over {a} and 0 over {b} — locally compatible, but the presheaf F(X) = Z has no section restricting to both. Its sheafification sends X to Z x Z (one integer per connected piece), which now glues. Stalks at a and at b are still Z.
Constant presheaf Z sheafifies to locally constant functions: bigger global sections, same stalks.
Sheafification preserves stalks but can change global sections (often enlarging them). It is the left adjoint to forgetting the sheaf axioms — so cokernels, images and tensor products of sheaves must be sheafified to stay sheaves.