a presheaf and sheaf
Imagine you want to keep track of some kind of local data attached to a space — say, the continuous functions defined on each open region of it. To every open set U you assign a collection F(U) of such data, and whenever a smaller open set V sits inside a bigger one U you have a way to restrict the data on U down to V (you just look at the function on the smaller region). That bookkeeping rule, an assignment of data to open sets together with restriction maps that compose correctly, is a presheaf. It is purely formal: nothing forces the data to behave the way local-versus-global geometry actually behaves.
A sheaf is a presheaf that obeys the two rules that genuinely local data must obey. Suppose an open set U is covered by smaller open sets U_i. Then: (1) Locality (separation) — if two sections s, t in F(U) restrict to the same thing on every U_i, they were already equal on U; you cannot have two distinct global objects that look identical everywhere locally. (2) Gluing — if you are given a section s_i on each U_i, and these agree on every overlap U_i intersect U_j, then there is a section s on all of U restricting to each s_i. Together these say: a section over U is exactly the same thing as a compatible family of local sections. Formally a presheaf F on a topological space X is a contravariant functor from the open sets of X to Sets (or Ab, or Rings), and it is a sheaf if for every open cover the sequence F(U) -> product of F(U_i) =>= product of F(U_i intersect U_j) is an equalizer.
The distinction matters because most natural assignments of local data ARE sheaves — continuous functions, smooth functions, holomorphic functions, sections of a bundle — and the sheaf axioms are exactly what let you reconstruct global objects from local ones, which is the whole engine of modern geometry. But not everything is a sheaf: the constant presheaf sending every nonempty U to a fixed group A is famously NOT a sheaf, because on a disconnected open set you can choose different constants on different pieces, and these locally-compatible choices have no single global value. The honest cure for a presheaf that fails the axioms is sheafification, which forces it to become the closest sheaf to it.
On any space X, the assignment U -> {continuous real functions on U} is a sheaf: a function defined consistently on each piece of an open cover, agreeing on overlaps, glues to one function on the union, and two functions equal on every piece are equal. By contrast, the assignment U -> {bounded continuous functions on U} is only a presheaf — local boundedness need not glue to global boundedness on a non-compact union.
Continuous functions form a sheaf; bounded continuous functions form only a presheaf.
Every sheaf is a presheaf, but most natural-looking presheaves (constant presheaf, bounded functions, image presheaf of a map) fail gluing or separation and are NOT sheaves. The fix is sheafification, not redefinition.