Schemes really are mysterious objects; in one form they manifest themselves as locally ringed spaces as we’ve defined them. But they also appear naturally as set-valued functors on the category of rings. There is actually an intuitive explanation of this fact, and in Diophantine geometry this method of viewing schemes is sometimes very helpful. This might motivate what’s going on:

Let A be a ring and let X = \text{Spec}(A); consider the polynomial f=x^2 + 1\in A[x]; for a ring B let X(B) denote the set of roots \alpha\in B to f. We call X(B) the set of “B-points of X“. For example, say A = \mathbb Z. Then X(\mathbb {R}) = \varnothing but X(\mathbb{C}) = \left\{i, -i\right\}, X(\mathbb{F}_2) = \left\{1\right\} and if p \equiv 1 \pmod{4} then X(\mathbb{F}_p) has two points. So applying X to a ring takes the ring to the set of points of a variety over that ring.

The “functor of points” approach says that we should think of each of these varieties X(R) as being “part of the scheme X“, and the scheme X itself is built from the collections of all its R-points X(R) as R ranges over every ring. Alternatively, a scheme really is a “protocol” assigning to each ring the set of solutions to an equation. This is intuitively why we have to define a variety over a field but schemes in general are not dependent on some ground field or ring (although there is a notion of an S-scheme which is the relative version analogous to varieties over a field which I need to introduce sometime), and this explains why we can chop, change and glue schemes easily, unlike for varieties.

Now viewing a scheme as the variety cut out by a polynomial over every possible ring gives us a lot more information about a polynomial f than just considering its roots in any one ring. For example, there are many curves over the complex numbers all having only one “rational point” i.e. a point in X(\mathbb{Q}); but these curves may be fundamentally different – for example, they may have different point structures over number fields i.e. the sets X(K) and X(L) may be different for different number fields K and L. So the overall schemes associated to the curve differ in their points coming from certain rings but not others. Considering just their R-points which agree for a certain R loses lots of information about the overall schemes.

As a concrete example, let consider the two curves C_1 and C_2 given respectively by the equations

C_1: y^2 = x^3 + 7

C_2: y^2 = x^3 - 2

It is a theorem of Lebesque that there are no integer points on C_1 (i.e. points (x,y), both integers, satisfying the equation for C_1), while Fermat proved that C_2 has precisely two integer points, namely (x,y) = (3,5), (3,-5). The curves C_1 and C_2 are both examples of “elliptic curves” (which we will see lots more of), and over \mathbb C they are both topologically just tori. So there is a bijection C_1 (\mathbb{C}) \cong C_2 (\mathbb{C}), while C_1 (\mathbb{Z}) = \varnothing and C_2 (\mathbb{Z}) has two points. If we only took the \mathbb{C}-points of C_1 and C_2 into account, we might think they were isomorphic, but considering their collections of all their points shows us they are not.

But there’s more than this: let f now be a polynomial in n variables (we can naturally also consider collections of polynomials). If \phi: R\rightarrow S is a ring homomorphism then we get a natural function

\phi_* : X(R)\rightarrow X(S)

given by

(a_1, \dots, a_n) \mapsto (\phi(a_1), \dots, \phi(a_n))

In this case we see that X is a functor from the category of commutative rings to sets. In fact, we will now see that X is representable i.e. it is naturally isomorphic to a functor of the form \text{Hom}(C,-) where C is some ring. Let’s set everything up in generality:

Theorem: Let A be a ring and let g_1, \dots, g_m be polynomials in A[x_1, \dots , x_n]. Let I be the ideal generated by g_1, \dots, g_m and set

X = \text{Spec}\left(A[x_1, \dots, x_n]/I\right)

Let h_X be the functor from the category of commutative rings to sets

h_X(R) = \left\{P \in R^n: h(P) = 0 \text{ for all } h\in I\right\}

Then h_X is naturally isomorphic to the functor

\text{Hom}(A[x_1, \dots, x_n]/I, -)\cong\text{Mor}(\text{Spec}(-), X)

Proof: We will prove naturality first and then that this is an isomorphism. Let R be a ring and take P\in h_X (R). Then the homomorphism “evaluate at P

e_P : A[x_1, \dots, x_n]/I \rightarrow R, h+I \mapsto h(P)

is well-defined. This gives a function

f_R : X(R)\rightarrow \text{Hom}(A[x_1, \dots, x_n]/I, R), P\mapsto e_P

If \phi: R\rightarrow S is a ring homomorphism, it is easy to see that

\phi \circ e_P = e_{\phi_* (P)}

This establishes naturality. Now suppose that we are given a ring homomorphism \psi: A[x_1, \dots, x_n]/I\rightarrow R; then this ring homomorphism is determined by where it sends A and each monomial x_i. Thus choosing P = (a_1, \dots, a_n)\in R^n so that \psi(x_i) = a_i is well-defined provided that \psi(g_j)(P) = 0 for each j i.e. P\in X(R). So let us define

q_R : \text{Hom}(A[x_1, \dots, x_n]/I, R)\rightarrow X(R)

\psi \mapsto P = (\psi(x_1 + I), \dots, \psi(x_n +I))

Then it is easy to see that q_R = f_R^{-1}, so every component of the natural transformation is a bijection and therefore it is a natural isomorphism. The isomorphism with \text{Mor}(-,X) follows from the big theorem in this post. Therefore we see that the functor assigning to an affine scheme X its collections of R-points for each ring R  is the same as the (contravariant) “codomain functor” assiging to X the collections of morphisms from affine schemes into X.

Here’s how this connects to general schemes; let X now be an arbitrary scheme. Then we know the functor

\text{Mor}(\text{Spec}(-), X): \text{CRing}\rightarrow \text{Set}

is isomorphic to the functor h_X sending each ring R to the set of R-points of X. The Yoneda embedding is full and faithful; this means that the functor X\mapsto h_X on the category of schemes “embeds” the category of schemes into the larger category of functors \text{CRing}\rightarrow\text{Set} i.e. the category of presheaves on the category of affine schemes. What this really tells us is that two schemes X and Y can be distinguished by knowing all their different R-points X(R) and Y(R) as R varies over all rings i.e. the morphisms from all affine schemes into an arbitrary scheme determine that scheme up to isomorphism.

Therefore we can “redefine” what a scheme is: it is (roughly) a presheaf on the opposite category of rings i.e. a functor from the category of rings to sets. More specifically we need to equip the category of commutative rings with something called a Grothendieck topology to turn it into a site (the Zariski site) which is basically a way of turning a category into a “space”; then every scheme is actually a sheaf on the Zariski site. I will explore this idea more next time.

You might want to look at this fantastic post on Neverendingbooks for an example of viewing \text{Spec}(\mathbb{Z}[x]) through its functor of points. For now, I will just give a couple of quick examples of the functor of points:

Let X = \text{Spec}(\mathbb{Z}[x]) be the “arithmetic plane” scheme; then for every ring R, the set of R-points of X is

h_X (R) \cong \text{Mor}(\text{Spec}(R), X) \cong \text{Hom}(\mathbb{Z}[x], R)

Now a ring morphism \mathbb{Z}[x]\rightarrow R is determined by what happens to \mathbb{Z} and what happens to x. Since \mathbb Z is the initial object in the category of rings, it follows that every morphism \mathbb{Z}[x]\rightarrow R is determined by where x is sent alone. Since we can “evaluate” a polynomial f\in \mathbb{Z}[x] at any element of R, it follows that h_X (R) is isomorphic to the underlying point set of the ring R i.e. h_X is just the forgetful functor from the category of rings to sets. It is interesting to note that the forgetful functor is representable, and the linked blog post above tells us that this does give us interesting information about X.

What about when X = \text{Spec}(\mathbb{Z})? Then h_X (R) \cong \text{Hom}(\mathbb{Z}, R). Since \mathbb{Z} is the initial object, each of these is a one-element set and all such sets are therefore isomorphic. Hence h_X is the functor mapping every ring to a terminal object in the category of sets i.e. a one-point set. So this functor is also representable! Translating this to schemes, it means every affine scheme Y as exactly one morphism to X i.e. there is exactly one Y-point of X for every affine scheme Y.

Finally, a note about the name “functor of points”; in arithmetic geometry, we’re often interested in the rational points on a variety/scheme X i.e. the K-points X(K), where K is some (not necessarily algebraically closed) field. We’ve seen these correspond to the scheme morphisms

\text{Spec}(K)\rightarrow X

and since \text{Spec}(K) is just a single closed point, we can think of these morphisms as the actual points on the scheme X (as a locally ringed space) that “look like” \text{Spec}(K) i.e. points where the restriction of the structure sheaf becomes isomorphic to K. These we can think of as points having coordinates valued in the field K, and recover the usual definition of K-points this way. The kicker is that we can do this for other rings R that are not fields, which correspond to “points” of X that “look like” \text{Spec}(R), and structurally are subsets of the scheme. Doing this for every single ring R splits up the scheme into a (not necessarily disjoint) union of all its generalised “points”, along with the functorial data of how these fit together in terms of the ring morphisms. I’ve drawn a vague picture of how this works for the scheme

E = \text{Spec}\left(\mathbb{Z}[x,y]/(y^2 - x^3 + 2)\right)

corresponding to the elliptic curve C_2: y^2 = x^3 -2 above.