Skip to content
The Lumenary
First-year graduateGraduate 150 min

Algebraic geometry

Shapes cut out by polynomial equations, read through their rings of functions, completed by points at infinity — and rebuilt by Grothendieck so that every commutative ring is a space.

Formally verified · 12 LeanComputationally tested · 2 PythonAI-drafted · awaiting human reviewMathematically reviewed: Awaiting human review
MotivationH

Equations are shapes

Draw the line through the point (−1,0)(-1, 0) of the unit circle x2+y2=1x^2 + y^2 = 1 with slope tt. Substituting y=t(x+1)y = t(x + 1) gives a quadratic equation in xx with the known root x=−1x = -1, so the other root is forced to be rational in tt:

(x,y)=(1−t21+t2,  2t1+t2).(x, y) = \left( \frac{1 - t^2}{1 + t^2},\; \frac{2t}{1 + t^2} \right).

Every rational slope gives a rational point and every rational point other than (−1,0)(-1, 0) comes from a rational slope: for instance t=2/3t = 2/3 gives (513,1213)(\tfrac{5}{13}, \tfrac{12}{13}) and, clearing denominators, the Pythagorean triple 52+122=1325^2 + 12^2 = 13^2. Diophantus used a version of this trick in the third century. It rests on a geometric fact — a line meets a conic in two points — which is false as stated (a line can miss a circle, or touch it) and becomes exactly true only after three repairs: allow complex points, add points at infinity, and count tangency twice. The result is Bézout's theorem: two plane curves of degrees dd and ee without common component meet in exactly dede points.

Algebraic geometry studies the sets of solutions of systems of polynomial equations — varieties — and the polynomial maps between them. Its central idea is a dictionary: a variety XX is controlled by its ring of polynomial functions k[X]k[X], points correspond to maximal ideals, subvarieties to prime ideals, and maps to ring homomorphisms in the opposite direction. Grothendieck turned the dictionary into a definition: every commutative ring RR is a space, Spec⁡R\operatorname{Spec} R, and gluing such spaces gives schemes. The same language then describes curves over C\C, curves over finite fields and the integers themselves.

This lesson assumes commutative algebra (prime ideals, localisation, Noetherian rings and the Nullstellensatz) and point-set topology. Throughout, kk is an algebraically closed field (such as C\C) unless said otherwise, and An=kn\mathbb{A}^n = k^n is affine nn-space.

IntuitionH

The dictionary

geometryalgebra
affine algebraic set X⊆AnX \subseteq \mathbb{A}^nradical ideal I(X)⊆k[x1,…,xn]I(X) \subseteq k[x_1, \dots, x_n]
irreducible XX (an affine variety)prime ideal
point a∈Ana \in \mathbb{A}^nmaximal ideal (x1−a1,…,xn−an)(x_1 - a_1, \dots, x_n - a_n)
polynomial functions on XXcoordinate ring k[X]=k[x1,…,xn]/I(X)k[X] = k[x_1, \dots, x_n]/I(X)
polynomial map X→YX \to Ykk-algebra homomorphism k[Y]→k[X]k[Y] \to k[X]
dimension of XXKrull dimension of k[X]k[X]
X∪YX \cup Y, X∩YX \cap YI(X)∩I(Y)I(X) \cap I(Y), I(X)+I(Y)\sqrt{I(X) + I(Y)}

Three warnings shape everything that follows.

  • The topology is coarse. Closed sets are zero sets of polynomials, so in the line A1\mathbb{A}^1 they are just the finite sets and the whole line. Two non-empty open sets always meet.
  • Points are not enough. The cusp y2=x3y^2 = x^3 and the line A1\mathbb{A}^1 are in bijection by a polynomial map, but they are not isomorphic: the rings of functions differ. The ideals (x)(x) and (x2)(x^2) have the same zero set, but (x2)(x^2) remembers a "double point". Rings, not point sets, carry the structure.
  • Affine space is incomplete. Parallel lines do not meet, and a line may miss a circle. Projective space adds the missing points at infinity; complex numbers add the missing complex points.
DefinitionsH

Definitions

Definition— algebraic sets and their ideals

For S⊆k[x1,…,xn]S \subseteq k[x_1, \dots, x_n] the affine algebraic set of SS is V(S)={a∈An:f(a)=0 for all f∈S}V(S) = \{a \in \mathbb{A}^n : f(a) = 0 \text{ for all } f \in S\}. For X⊆AnX \subseteq \mathbb{A}^n its ideal is I(X)={f:f(a)=0 for all a∈X}I(X) = \{f : f(a) = 0 \text{ for all } a \in X\}, always a radical ideal. V(S)=V(⟨S⟩)V(S) = V(\langle S \rangle), and by Hilbert's basis theorem every algebraic set is cut out by finitely many polynomials.

Definition— Zariski topology; irreducibility; variety

The Zariski topology on An\mathbb{A}^n has the algebraic sets as its closed sets; a subset of An\mathbb{A}^n gets the subspace topology. A non-empty topological space is irreducible if it is not the union of two proper closed subsets; equivalently, any two non-empty open subsets meet. An affine variety is an irreducible affine algebraic set. (Some authors, e.g. in scheme theory, allow reducible "varieties"; we follow Hartshorne.)

Definition— coordinate ring, regular functions, morphisms

The coordinate ring of an algebraic set X⊆AnX \subseteq \mathbb{A}^n is k[X]=k[x1,…,xn]/I(X)k[X] = k[x_1, \dots, x_n]/I(X), the ring of polynomial functions on XX; it is a finitely generated, reduced (no non-zero nilpotents) kk-algebra, and a domain exactly when XX is a variety. A morphism φ:X→Y\varphi : X \to Y of algebraic sets X⊆AnX \subseteq \mathbb{A}^n, Y⊆AmY \subseteq \mathbb{A}^m is a map φ=(φ1,…,φm)\varphi = (\varphi_1, \dots, \varphi_m) with φi∈k[X]\varphi_i \in k[X] and φ(X)⊆Y\varphi(X) \subseteq Y. It induces the comorphism φ∗:k[Y]→k[X]\varphi^* : k[Y] \to k[X], g↦g∘φg \mapsto g \circ \varphi. An isomorphism is a morphism with a morphism inverse.

Definition— function field and dimension

For a variety XX the function field k(X)k(X) is the fraction field of k[X]k[X]; its elements are rational functions, defined on a dense open subset. Varieties with isomorphic function fields are birational. The dimension of XX is the supremum of lengths nn of chains Z0⊊Z1⊊⋯⊊ZnZ_0 \subsetneq Z_1 \subsetneq \cdots \subsetneq Z_n of irreducible closed subsets; it equals the Krull dimension of k[X]k[X] and the transcendence degree of k(X)k(X) over kk. Curves have dimension 11, surfaces 22.

Definition— projective space and projective algebraic sets

Projective nn-space Pn\mathbb{P}^n is the set of lines through the origin in kn+1k^{n+1}: points are written [a0:⋯:an][a_0 : \cdots : a_n], not all ai=0a_i = 0, with [a0:⋯:an]=[λa0:⋯:λan][a_0 : \cdots : a_n] = [\lambda a_0 : \cdots : \lambda a_n] for λ∈k×\lambda \in k^\times. A polynomial FF does not have values on Pn\mathbb{P}^n, but if FF is homogeneous the condition F(a)=0F(a) = 0 is well defined. Projective algebraic sets are common zero sets of homogeneous polynomials (equivalently of a homogeneous ideal), and they are the closed sets of the Zariski topology on Pn\mathbb{P}^n. The standard charts Ui={ai≠0}≅AnU_i = \{a_i \neq 0\} \cong \mathbb{A}^n, [a0:⋯:an]↦(a0/ai,…,ai/ai^,…,an/ai)[a_0 : \cdots : a_n] \mapsto (a_0/a_i, \dots, \widehat{a_i/a_i}, \dots, a_n/a_i), cover Pn\mathbb{P}^n. The projective closure of an affine algebraic set is its closure in Pn⊇U0\mathbb{P}^n \supseteq U_0, obtained by homogenising the equations.

Definition— plane curves and intersection multiplicity

A projective plane curve of degree dd is a non-zero homogeneous F∈k[x,y,z]F \in k[x, y, z] of degree dd, up to scalar multiples (it may have repeated factors, which count as multiple components). For curves F,GF, G and a point PP in the chart z≠0z \neq 0, with f,gf, g their dehomogenisations, the intersection multiplicity is

IP(F,G)=dim⁡kOP/(f,g),I_P(F, G) = \dim_k \mathcal{O}_P / (f, g),

where OP=k[x,y]mP\mathcal{O}_P = k[x, y]_{\mathfrak{m}_P} is the local ring of the plane at PP (rational functions defined at PP); points in other charts are treated in the same way. IPI_P is finite exactly when FF and GG have no common component through PP, is 00 when PP is not on both curves, is 11 exactly when PP is a smooth point of both curves with different tangent lines, and for a line LL equals the order of vanishing at PP of FF restricted to LL (Fulton, Algebraic Curves, §3.3).

Definition— presheaves and sheaves

A presheaf F\mathcal{F} of rings on a space XX assigns a ring F(U)\mathcal{F}(U) to each open UU and restriction maps F(U)→F(V)\mathcal{F}(U) \to \mathcal{F}(V), s↦s∣Vs \mapsto s|_V, for V⊆UV \subseteq U, compatibly with composition. It is a sheaf if sections are determined locally and compatible local sections glue: for every open cover U=⋃UiU = \bigcup U_i, the sequence

0→F(U)→∏iF(Ui)⇉∏i,jF(Ui∩Uj)0 \to \mathcal{F}(U) \to \prod_i \mathcal{F}(U_i) \rightrightarrows \prod_{i, j} \mathcal{F}(U_i \cap U_j)

is exact (an equaliser). On a variety, the structure sheaf OX\mathcal{O}_X assigns to UU the ring of regular functions on UU: functions that are locally quotients g/hg/h of polynomials with h≠0h \neq 0.

Definition— Spec R, the structure sheaf, schemes

For a commutative ring RR, Spec⁡R\operatorname{Spec} R is the set of prime ideals with the Zariski topology (closed sets V(I)={p⊇I}V(I) = \{\mathfrak{p} \supseteq I\}), with basic open sets D(f)={p:f∉p}D(f) = \{\mathfrak{p} : f \notin \mathfrak{p}\}. Its structure sheaf O\mathcal{O} is the unique sheaf of rings with O(D(f))=Rf=R[1/f]\mathcal{O}(D(f)) = R_f = R[1/f] and restriction maps the localisation maps; its stalk at p\mathfrak{p} is the local ring RpR_\mathfrak{p}. The pair (Spec⁡R,O)(\operatorname{Spec} R, \mathcal{O}) is an affine scheme. A scheme is a space with a sheaf of rings (a locally ringed space) that is locally isomorphic to affine schemes; morphisms of schemes are morphisms of locally ringed spaces.

Worked examplesH

Examples and non-examples

Example— The affine line and the cofinite topology

A non-zero polynomial in one variable has finitely many roots, so the algebraic subsets of A1\mathbb{A}^1 are A1\mathbb{A}^1 itself and the finite sets: the Zariski topology on A1\mathbb{A}^1 is the cofinite topology. It is T1T_1 (points are closed) but not Hausdorff, because kk is infinite and any two cofinite sets meet. In A2\mathbb{A}^2 the closed sets are finite unions of points and curves, and the Zariski topology on A2=A1×A1\mathbb{A}^2 = \mathbb{A}^1 \times \mathbb{A}^1 is not the product topology: the diagonal x=yx = y is closed in A2\mathbb{A}^2 but not in the product of two cofinite topologies.

Example— A parabola is a line; a hyperbola is not

The parabola P=V(y−x2)P = V(y - x^2) is isomorphic to A1\mathbb{A}^1: the morphisms t↦(t,t2)t \mapsto (t, t^2) and (x,y)↦x(x, y) \mapsto x are mutually inverse, and correspondingly k[P]=k[x,y]/(y−x2)≅k[t]k[P] = k[x, y]/(y - x^2) \cong k[t].

The hyperbola H=V(xy−1)H = V(xy - 1) is not: k[H]=k[x,y]/(xy−1)≅k[t,t−1]k[H] = k[x, y]/(xy - 1) \cong k[t, t^{-1}], in which tt is a non-constant unit, whereas the units of k[t]k[t] are the non-zero constants. An isomorphism H≅A1H \cong \mathbb{A}^1 would give a ring isomorphism k[t]≅k[t,t−1]k[t] \cong k[t, t^{-1}], preserving units. (Projection (x,y)↦x(x, y) \mapsto x does identify HH with the open subset A1∖{0}\mathbb{A}^1 \setminus \{0\} — so an open subset of an affine variety can itself be affine.) Note that HH and A1\mathbb{A}^1 are homeomorphic in their Zariski topologies — both carry the cofinite topology on a set of cardinality ∣k∣|k|, so any bijection is a homeomorphism: topology alone cannot tell them apart.

Example— The cusp: a bijection that is not an isomorphism

Let C=V(y2−x3)C = V(y^2 - x^3). The morphism φ:A1→C\varphi : \mathbb{A}^1 \to C, t↦(t2,t3)t \mapsto (t^2, t^3), is bijective: its inverse is (x,y)↦y/x(x, y) \mapsto y/x for x≠0x \neq 0 and (0,0)↦0(0, 0) \mapsto 0. But this inverse is not a polynomial map, and no inverse morphism exists: the comorphism φ∗:k[C]→k[t]\varphi^* : k[C] \to k[t] sends x↦t2x \mapsto t^2, y↦t3y \mapsto t^3 with image k[t2,t3]k[t^2, t^3], which does not contain tt (formalised below). So φ∗\varphi^* is not an isomorphism, and neither is φ\varphi. Geometrically, CC has a singular point at the origin (both partial derivatives of y2−x3y^2 - x^3 vanish there), while A1\mathbb{A}^1 is smooth. Algebraically, k[C]k[C] is not integrally closed, and φ\varphi is its normalisation.

Example— Reducible sets and non-radical ideals

V(xy)⊆A2V(xy) \subseteq \mathbb{A}^2 is the union of the two axes V(x)∪V(y)V(x) \cup V(y); its ideal (xy)(xy) is radical but not prime. The ideals (x2y,xy2)(x^2y, xy^2), (xy)(xy) and (x)∩(y)(x) \cap (y) all have this zero set, and the Nullstellensatz gives I(V(x2y,xy2))=(x2y,xy2)=(xy)I(V(x^2y, xy^2)) = \sqrt{(x^2y, xy^2)} = (xy). Likewise V(x2)=V(x)V(x^2) = V(x) in A1\mathbb{A}^1: the varieties cannot see the difference between (x)(x) and (x2)(x^2), but schemes can — Spec⁡k[x]/(x2)\operatorname{Spec} k[x]/(x^2) is a point with a tangent direction attached.

Example— Points at infinity

Homogenising with a new variable zz embeds A2\mathbb{A}^2 as the chart z=1z = 1 of P2\mathbb{P}^2; the complement is the line at infinity z=0z = 0.

  • The parallel lines y=0y = 0 and y=1y = 1 become y=0y = 0 and y=zy = z, which meet at [1:0:0][1 : 0 : 0]: parallel lines meet at infinity, at the point determined by their common direction.
  • The hyperbola xy=1xy = 1 becomes xy=z2xy = z^2 and meets the line at infinity at [1:0:0][1 : 0 : 0] and [0:1:0][0 : 1 : 0] — the directions of its asymptotes.
  • The parabola y=x2y = x^2 becomes yz=x2yz = x^2 and meets z=0z = 0 only at [0:1:0][0 : 1 : 0], where x2=0x^2 = 0 gives a double root: the parabola is tangent to the line at infinity.
  • Every circle x2+y2+axz+byz+cz2=0x^2 + y^2 + axz + byz + cz^2 = 0 passes through the two circular points [1:±i:0][1 : \pm i : 0]. So two circles, which meet in at most 22 affine points, have their remaining 22 intersections there.

Over R\R, ellipse, parabola and hyperbola are projectively equivalent, distinguished only by how they meet the line at infinity: in no real point, in one double point, or in two real points.

Example— Spec of the integers

The points of Spec⁡Z\operatorname{Spec}\Z are (2),(3),(5),(7),…(2), (3), (5), (7), \dots — one closed point for each prime — together with the generic point (0)(0), whose closure is the whole space. The function n∈Zn \in \Z has the "value" n mod pn \bmod p in Fp\mathbb{F}_p at the point (p)(p), and vanishes exactly at the primes dividing nn. Spec⁡Z\operatorname{Spec}\Z looks like a curve: it has dimension 11, its non-empty open sets are cofinite and contain the generic point, and the rings of integers of number fields give "curves" lying over it.

generic point (0)(2)(3)(5)(7)(11)(13)…
Spec ℤ drawn as a curve (after Mumford): one closed point for each prime, and a generic point (0) spread along the whole line, lying in every non-empty open set.
ProofH

The main theorems

Theorem— Proposition 1 (the Zariski topology)

For subsets and ideals of k[x1,…,xn]k[x_1, \dots, x_n] (any field kk): V(0)=AnV(0) = \mathbb{A}^n, V(1)=∅V(1) = \varnothing, V(⋃αSα)=⋂αV(Sα)V\big(\bigcup_\alpha S_\alpha\big) = \bigcap_\alpha V(S_\alpha), and V(IJ)=V(I∩J)=V(I)∪V(J)V(IJ) = V(I \cap J) = V(I) \cup V(J). Hence the algebraic sets are the closed sets of a topology. Moreover VV and II reverse inclusions, X⊆V(I(X))X \subseteq V(I(X)) with equality exactly when XX is algebraic, and V(I(X))=X‾V(I(X)) = \overline{X} is the Zariski closure.

Proof

The first three identities are immediate from the definition. Since IJ⊆I∩J⊆IIJ \subseteq I \cap J \subseteq I, we have V(I)⊆V(I∩J)⊆V(IJ)V(I) \subseteq V(I \cap J) \subseteq V(IJ), and similarly for JJ. Conversely, let a∈V(IJ)a \in V(IJ) and suppose a∉V(I)a \notin V(I): choose f∈If \in I with f(a)≠0f(a) \neq 0. For every g∈Jg \in J, fg∈IJfg \in IJ, so f(a)g(a)=0f(a) g(a) = 0 and hence g(a)=0g(a) = 0; thus a∈V(J)a \in V(J). So V(IJ)⊆V(I)∪V(J)V(IJ) \subseteq V(I) \cup V(J). If X=V(J)X = V(J) then J⊆I(X)J \subseteq I(X), so V(I(X))⊆V(J)=XV(I(X)) \subseteq V(J) = X; and V(I(X))V(I(X)) is the smallest algebraic set containing XX, since any algebraic V(J)⊇XV(J) \supseteq X has J⊆I(X)J \subseteq I(X).

∎

Theorem— Proposition 2 (irreducible sets are prime ideals; components)

An algebraic set XX is irreducible if and only if I(X)I(X) is a prime ideal. Every algebraic set is a finite union X=X1∪⋯∪XrX = X_1 \cup \cdots \cup X_r of irreducible algebraic sets, uniquely if no XiX_i contains another (the irreducible components).

Proof

Suppose XX is irreducible and fg∈I(X)fg \in I(X). Then X=(X∩V(f))∪(X∩V(g))X = (X \cap V(f)) \cup (X \cap V(g)) is a union of two closed subsets, so one of them, say X∩V(f)X \cap V(f), is all of XX; that is, f∈I(X)f \in I(X). And I(X)≠(1)I(X) \neq (1) because X≠∅X \neq \varnothing. Conversely, if I(X)I(X) is prime and X=X1∪X2X = X_1 \cup X_2 with XiX_i closed and proper, then I(Xi)⊋I(X)I(X_i) \supsetneq I(X) (Proposition 1: Xi=V(I(Xi))X_i = V(I(X_i))), so we may pick fi∈I(Xi)∖I(X)f_i \in I(X_i) \setminus I(X); but f1f2f_1 f_2 vanishes on X1∪X2=XX_1 \cup X_2 = X, contradicting primality.

For the decomposition: if some algebraic set had no such decomposition, by Hilbert's basis theorem (ascending chains of ideals stabilise, so descending chains of algebraic sets stabilise) there would be a minimal such XX. It is not irreducible, so X=X1∪X2X = X_1 \cup X_2 with proper closed XiX_i, each of which decomposes by minimality — contradiction. For uniqueness, let X=⋃Xi=⋃YjX = \bigcup X_i = \bigcup Y_j be irredundant decompositions. Since X1=⋃j(X1∩Yj)X_1 = \bigcup_j (X_1 \cap Y_j) is irreducible, X1⊆YjX_1 \subseteq Y_j for some jj; symmetrically Yj⊆XiY_j \subseteq X_i for some ii, and then X1⊆XiX_1 \subseteq X_i forces i=1i = 1, so X1=YjX_1 = Y_j. The same argument applies to every XiX_i and every YjY_j, so the two decompositions have the same members.

∎

Theorem— Theorem 3 (the Nullstellensatz dictionary)

Let kk be algebraically closed. For every ideal J⊆k[x1,…,xn]J \subseteq k[x_1, \dots, x_n], I(V(J))=JI(V(J)) = \sqrt{J}. Hence VV and II are mutually inverse, inclusion-reversing bijections

{radical ideals}↔{algebraic sets},{prime ideals}↔{affine varieties},{maximal ideals}↔{points}.\{\text{radical ideals}\} \leftrightarrow \{\text{algebraic sets}\}, \qquad \{\text{prime ideals}\} \leftrightarrow \{\text{affine varieties}\}, \qquad \{\text{maximal ideals}\} \leftrightarrow \{\text{points}\}.

Proof

The equation I(V(J))=JI(V(J)) = \sqrt{J} is Hilbert's Nullstellensatz, proved in the lesson on commutative algebra (in full for uncountable kk such as C\C, via Rabinowitsch's trick). It shows I∘VI \circ V is the identity on radical ideals, and Proposition 1 shows V∘IV \circ I is the identity on algebraic sets. Prime ideals correspond to irreducible sets by Proposition 2, and maximal ideals — minimal non-empty algebraic sets — to points.

∎

Algebraic closure is essential: over R\R, V(x2+y2+1)=∅=V(1)V(x^2 + y^2 + 1) = \varnothing = V(1), although (x2+y2+1)(x^2 + y^2 + 1) is a prime ideal.

Theorem— Proposition 4 (the Zariski topology is not Hausdorff)

In an irreducible space, every non-empty open set is dense, and any two non-empty open sets meet. Consequently an affine variety with more than one point — for instance An\mathbb{A}^n for n≥1n \geq 1 — is not Hausdorff.

Proof

If U,VU, V are non-empty open and U∩V=∅U \cap V = \varnothing, then X=(X∖U)∪(X∖V)X = (X \setminus U) \cup (X \setminus V) is a union of two proper closed subsets, so XX is reducible. In a Hausdorff space with two distinct points a≠ba \neq b there are disjoint open neighbourhoods of aa and bb, which is impossible here. Finally An\mathbb{A}^n is irreducible because I(An)=0I(\mathbb{A}^n) = 0 (a polynomial vanishing on all of knk^n, for infinite kk, is zero, by induction on nn) is prime.

∎

For A1\mathbb{A}^1 the proof is concrete: basic open sets D(f)={f≠0}D(f) = \{f \neq 0\} and D(g)D(g) with f,g≠0f, g \neq 0 always meet, because fgfg has finitely many roots and kk is infinite — this is the statement formalised below. The same is true of Spec⁡Z\operatorname{Spec}\Z, where it is even worse: the generic point lies in every non-empty open set, so Spec⁡Z\operatorname{Spec}\Z is not even T1T_1.

Theorem— Theorem 5 (affine varieties are the opposite of algebras)

Let X⊆AnX \subseteq \mathbb{A}^n and Y⊆AmY \subseteq \mathbb{A}^m be affine algebraic sets over an algebraically closed field kk.

  1. φ↦φ∗\varphi \mapsto \varphi^* is a bijection from morphisms X→YX \to Y to kk-algebra homomorphisms k[Y]→k[X]k[Y] \to k[X], compatible with composition: (ψ∘φ)∗=φ∗∘ψ∗(\psi \circ \varphi)^* = \varphi^* \circ \psi^*.
  2. Every finitely generated reduced kk-algebra is isomorphic to k[X]k[X] for some XX.

Hence X↦k[X]X \mapsto k[X] is an equivalence between the category of affine algebraic sets and the opposite of the category of finitely generated reduced kk-algebras; under it, affine varieties correspond to finitely generated kk-algebras that are domains.

Proof

(1) Write yˉ1,…,yˉm\bar y_1, \dots, \bar y_m for the coordinate functions on YY, which generate k[Y]k[Y]. Given a homomorphism α:k[Y]→k[X]\alpha : k[Y] \to k[X], set φ=(α(yˉ1),…,α(yˉm)):X→Am\varphi = (\alpha(\bar y_1), \dots, \alpha(\bar y_m)) : X \to \mathbb{A}^m. For g∈I(Y)g \in I(Y) and a∈Xa \in X, g(φ(a))=α(gˉ)(a)=α(0)(a)=0g(\varphi(a)) = \alpha(\bar g)(a) = \alpha(0)(a) = 0, because α\alpha is a kk-algebra map and so commutes with polynomial expressions; hence φ(a)∈V(I(Y))=Y\varphi(a) \in V(I(Y)) = Y by Proposition 1. So φ\varphi is a morphism, and φ∗(yˉi)=α(yˉi)\varphi^*(\bar y_i) = \alpha(\bar y_i), so φ∗=α\varphi^* = \alpha since both are algebra maps agreeing on generators. Conversely a morphism is determined by its coordinates φi=φ∗(yˉi)\varphi_i = \varphi^*(\bar y_i). Compatibility with composition is g∘(ψ∘φ)=(g∘ψ)∘φg \circ (\psi \circ \varphi) = (g \circ \psi) \circ \varphi.

(2) A finitely generated kk-algebra is A≅k[x1,…,xn]/JA \cong k[x_1, \dots, x_n]/J for some ideal JJ; it is reduced exactly when JJ is radical. Then X=V(J)X = V(J) has I(X)=J=JI(X) = \sqrt{J} = J by the Nullstellensatz, so k[X]=Ak[X] = A. A functor that is fully faithful (by (1)) and essentially surjective (by (2)) is an equivalence; domains correspond to prime I(X)I(X), i.e. to varieties by Proposition 2.

∎

So isomorphism of varieties is isomorphism of coordinate rings — which is how the parabola, hyperbola and cusp examples were decided. A point a∈Xa \in X is the same as a homomorphism k[X]→kk[X] \to k (evaluation at aa), which is a first glimpse of the functor of points: X(k)=Hom⁡k-alg(k[X],k)X(k) = \operatorname{Hom}_{k\text{-alg}}(k[X], k).

Theorem— Proposition 6 (projective space over a finite field)

Pn\mathbb{P}^n is covered by the n+1n + 1 charts Ui≅AnU_i \cong \mathbb{A}^n, and Pn=An⊔Pn−1\mathbb{P}^n = \mathbb{A}^n \sqcup \mathbb{P}^{n-1} (the chart U0U_0 and the hyperplane at infinity a0=0a_0 = 0). Over the finite field Fq\mathbb{F}_q,

#Pn(Fq)=qn+1−1q−1=qn+qn−1+⋯+q+1.\#\mathbb{P}^n(\mathbb{F}_q) = \frac{q^{n+1} - 1}{q - 1} = q^n + q^{n-1} + \cdots + q + 1.

Proof

The chart maps are inverse to (b1,…,bn)↦[b1:⋯:1:⋯:bn](b_1, \dots, b_n) \mapsto [b_1 : \cdots : 1 : \cdots : b_n] (11 in position ii), and every point has some non-zero coordinate. Points with a0≠0a_0 \neq 0 are [1:b1:⋯:bn][1 : b_1 : \cdots : b_n], a copy of An\mathbb{A}^n; points with a0=0a_0 = 0 are [0:a1:⋯:an][0 : a_1 : \cdots : a_n], a copy of Pn−1\mathbb{P}^{n-1}. Over Fq\mathbb{F}_q the non-zero vectors of Fqn+1\mathbb{F}_q^{n+1}, qn+1−1q^{n+1} - 1 of them, fall into lines of q−1q - 1 non-zero vectors each; alternatively induct with #Pn=qn+#Pn−1\#\mathbb{P}^n = q^n + \#\mathbb{P}^{n-1}.

∎

Theorem— Theorem 7 (Bézout for a line)

Let kk be algebraically closed, L⊆P2L \subseteq \mathbb{P}^2 a line and FF a curve of degree dd not containing LL. Then LL meets FF in exactly dd points counted with multiplicity: ∑P∈LIP(L,F)=d\sum_{P \in L} I_P(L, F) = d.

Proof

Choose two distinct points A,BA, B spanning LL and parametrise LL by [s:t]↦sA+tB[s : t] \mapsto sA + tB, a bijection P1→L\mathbb{P}^1 \to L. Then h(s,t)=F(sA+tB)h(s, t) = F(sA + tB) is a homogeneous polynomial of degree dd in s,ts, t (each monomial of FF has degree dd). It is not identically zero, since L⊈V(F)L \not\subseteq V(F). Over an algebraically closed field a non-zero binary form of degree dd factors as a product of dd linear forms: h=c∏j=1d(βjs−αjt)h = c \prod_{j=1}^{d} (\beta_j s - \alpha_j t) — dehomogenise at t=1t = 1 to get a polynomial of degree d−ed - e in ss (where te∥ht^{e} \parallel h), which splits into linear factors, and the ee missing roots are at [1:0][1 : 0]. The zeros of hh are the parameters of the points of L∩V(F)L \cap V(F), and the multiplicity of the root [αj:βj][\alpha_j : \beta_j] is the order of vanishing of FF along LL at that point, which is IP(L,F)I_P(L, F). Summing the multiplicities gives dd.

∎

For example, a line meets a smooth cubic in 33 points; if two are rational, so is the third — which is the source of the group law on an elliptic curve (see arithmetic geometry).

Theorem— Theorem 8 (Bézout for a smooth conic)

Let Q⊆P2Q \subseteq \mathbb{P}^2 be a smooth conic and FF a curve of degree dd not containing QQ. Then ∑PIP(Q,F)=2d\sum_P I_P(Q, F) = 2d. In particular two conics without common component meet in 44 points counted with multiplicity.

Proof

Over an algebraically closed field of characteristic ≠2\neq 2, a smooth conic is a non-degenerate quadratic form in three variables, and after a linear change of coordinates it becomes Q=V(xz−y2)Q = V(xz - y^2) (diagonalise the form to x′2+y′2+z′2x'^2 + y'^2 + z'^2, then substitute). The map ν:P1→Q\nu : \mathbb{P}^1 \to Q, [s:t]↦[s2:st:t2][s : t] \mapsto [s^2 : st : t^2], is a bijection onto QQ: a point [x:y:z][x : y : z] of QQ with x≠0x \neq 0 is ν[x:y]\nu[x : y], and the only point with x=0x = 0 is [0:0:1]=ν[0:1][0 : 0 : 1] = \nu[0 : 1]. Now h(s,t)=F(s2,st,t2)h(s, t) = F(s^2, st, t^2) is a binary form of degree 2d2d, non-zero because Q⊈V(F)Q \not\subseteq V(F), so it has 2d2d roots counted with multiplicity, as in Theorem 7. The multiplicity of a root equals IP(Q,F)I_P(Q, F) because ν\nu restricts, near each point, to an isomorphism of a neighbourhood in P1\mathbb{P}^1 with a neighbourhood in the smooth curve QQ, and the local ring of QQ at PP is a discrete valuation ring in which IP(Q,F)I_P(Q, F) is the order of vanishing of FF (Fulton, §3.3).

∎

The same argument works for any curve with a parametrisation P1→C\mathbb{P}^1 \to C by forms of degree mm that is an isomorphism onto a smooth curve: it meets FF in mdmd points. The general case needs a different tool.

Theorem— Theorem 9 (Bézout's theorem; proof sketched)

Let kk be algebraically closed and F,G⊆P2F, G \subseteq \mathbb{P}^2 curves of degrees dd and ee with no common component. Then

∑P∈P2IP(F,G)=de.\sum_{P \in \mathbb{P}^2} I_P(F, G) = de.

In particular FF and GG meet in at least one and at most dede points.

Proof sketch. Change coordinates so that [0:0:1][0 : 0 : 1] lies on neither curve and on no line joining two of the (finitely many) intersection points. Write FF and GG as polynomials in zz with coefficients in k[x,y]k[x, y]; their leading coefficients are non-zero constants. The resultant R(x,y)=Res⁡z(F,G)R(x, y) = \operatorname{Res}_z(F, G), the determinant of the Sylvester matrix, is a homogeneous polynomial of degree exactly dede in x,yx, y — this is a degree count in the determinant — and it vanishes at (a,b)(a, b) exactly when F(a,b,z)F(a, b, z) and G(a,b,z)G(a, b, z) have a common root zz, that is, when the line through [0:0:1][0 : 0 : 1] and [a:b:0][a : b : 0] contains an intersection point. Since R≠0R \neq 0 (no common component) it has dede roots in P1\mathbb{P}^1 counted with multiplicity, one for each intersection point by the choice of coordinates; the remaining work is to show that the multiplicity of each root equals IP(F,G)I_P(F, G), using the axiomatic characterisation of IPI_P. Complete proofs: Fulton, Algebraic Curves, Chapter 5; Kirwan, Complex Algebraic Curves, Chapter 3; Shafarevich, Basic Algebraic Geometry 1, §IV.2 (via intersection theory). The first experiment below carries out this resultant computation. □\square

Each hypothesis is needed: over R\R a line can miss a circle; in A2\mathbb{A}^2 parallel lines do not meet; without multiplicities a tangent line meets a conic once; and curves with a common component share infinitely many points.

Theorem— Theorem 10 (the structure sheaf of Spec R)

Let RR be a commutative ring and f1,…,fr∈Rf_1, \dots, f_r \in R with D(f1)∪⋯∪D(fr)=Spec⁡RD(f_1) \cup \cdots \cup D(f_r) = \operatorname{Spec} R. Then the sequence

0⟶R⟶∏iRfi⇉∏i,jRfifj0 \longrightarrow R \longrightarrow \prod_{i} R_{f_i} \rightrightarrows \prod_{i, j} R_{f_i f_j}

is exact: an element of RR that vanishes in every RfiR_{f_i} is 00, and elements si∈Rfis_i \in R_{f_i} that agree in every RfifjR_{f_i f_j} come from a unique a∈Ra \in R. Consequently D(f)↦RfD(f) \mapsto R_f satisfies the sheaf condition on covers by basic open sets, extends to a sheaf O\mathcal{O} on Spec⁡R\operatorname{Spec} R, and O(Spec⁡R)=R\mathcal{O}(\operatorname{Spec} R) = R.

Proof

The fif_i generate the unit ideal, and so do their powers. If (f1,…,fr)≠R(f_1, \dots, f_r) \neq R, it lies in a maximal ideal m\mathfrak{m}, which is then in no D(fi)D(f_i). For any NN, the fiNf_i^N also satisfy the hypothesis (D(fN)=D(f)D(f^N) = D(f)), so 1=∑icifiN1 = \sum_i c_i f_i^N for some ci∈Rc_i \in R.

Injectivity. If a/1=0a/1 = 0 in each RfiR_{f_i}, then fiNa=0f_i^{N} a = 0 for all ii and some common NN. Writing 1=∑cifiN1 = \sum c_i f_i^N gives a=∑cifiNa=0a = \sum c_i f_i^N a = 0.

Gluing. Write si=ai/fins_i = a_i / f_i^n with a common nn. Agreement in RfifjR_{f_i f_j} means (fifj)m(aifjn−ajfin)=0(f_i f_j)^m (a_i f_j^n - a_j f_i^n) = 0 for some mm, which we may take independent of i,ji, j. Put bi=aifimb_i = a_i f_i^m and gi=fin+mg_i = f_i^{n + m}; then si=bi/gis_i = b_i / g_i in RfiR_{f_i} and bigj=bjgib_i g_j = b_j g_i for all i,ji, j. Write 1=∑jcjgj1 = \sum_j c_j g_j and set a=∑jcjbja = \sum_j c_j b_j. Then

a gi=∑jcjbjgi=∑jcjbigj=bi,a\, g_i = \sum_j c_j b_j g_i = \sum_j c_j b_i g_j = b_i,

so a/1=bi/gi=sia/1 = b_i/g_i = s_i in RfiR_{f_i}. Uniqueness is injectivity. Applying this to RfR_f in place of RR handles covers of D(f)=Spec⁡RfD(f) = \operatorname{Spec} R_f by smaller basic open sets; a sheaf on a basis extends uniquely to a sheaf (Hartshorne, II.1 and II.2.2).

∎

RR
∏iRfi\prod_i R_{f_i}
∏i,jRfifj\prod_{i,j} R_{f_i f_j}
res1\mathrm{res}_1
res2\mathrm{res}_2
RR is the equaliser of the two restriction maps: local data that agree on overlaps glue uniquely to a global element.

Theorem 10 is why Grothendieck's definition works: an affine scheme remembers its ring (Γ(Spec⁡R,O)=R\Gamma(\operatorname{Spec} R, \mathcal{O}) = R), Theorem 5 becomes the equivalence of affine schemes with the opposite of all commutative rings, and gluing affine schemes along open subsets gives schemes such as PZn\mathbb{P}^n_\Z, defined over every ring at once. A variety over kk is (the set of closed points of) a reduced, irreducible scheme of finite type over kk. Theorem 10 is stated here for the ring RR itself; the same proof for modules gives the quasi-coherent sheaves M~\widetilde{M} that underlie modern cohomology.

Explore

Explore: chords, conics and cubics

The chord trick. Move the slope mm of the line through (−1,0)(-1, 0). The line meets the circle in exactly one more point P=(1−m21+m2,2m1+m2)P = \big(\tfrac{1 - m^2}{1 + m^2}, \tfrac{2m}{1 + m^2}\big) — Bézout's count 2=1+12 = 1 + 1. As m→±∞m \to \pm\infty the line becomes vertical and P→(−1,0)P \to (-1, 0): the tangent line meets the circle twice at the same point. Rational mm gives rational points, which is the whole parametrisation of Pythagorean triples.

A line through a point of a conic meets it once more

Rational slope m ⇔ rational point P: the circle is isomorphic to the projective line.

(−1, 0)P
  • x² + y² = 1
  • line through (−1, 0) with slope m
  • (0.707, 0.707)
  • (−1.125, −0.063)

Cubics and their singularities. The real points of y2=x3+ax+by^2 = x^3 + ax + b are drawn as the two graphs y=±x3+ax+by = \pm\sqrt{x^3 + ax + b}. The curve is singular exactly when 4a3+27b2=04a^3 + 27b^2 = 0: try a=−3a = -3, b=2b = 2, where x3−3x+2=(x−1)2(x+2)x^3 - 3x + 2 = (x - 1)^2(x + 2) and the curve has a node at (1,0)(1, 0) (two branches crossing), and a=b=0a = b = 0, the cusp y2=x3y^2 = x^3. For other values the cubic is smooth — an elliptic curve — with one or two real components; over C\C it is a torus, of genus 11.

The family y² = x³ + ax + b

Smooth unless 4a³ + 27b² = 0: try (a, b) = (−3, 2) for a node and (0, 0) for a cusp.

  • y = +√(x³ + ax + b)
  • y = −√(x³ + ax + b)
  • y = +√(x³ + ax + b): y = 0
  • y = −√(x³ + ax + b): y = 0
Formal mathematicsF

Algebraic geometry in Lean and Mathlib

Mathlib has both classical algebraic sets (MvPolynomial.zeroLocus, MvPolynomial.vanishingIdeal) and the full theory of schemes (AlgebraicGeometry.Scheme). We begin with Proposition 1, proved here exactly as in the text:

zeroLocus_mulLean 4Proved here from basic factsFormally verified
/-- **Finite unions of algebraic sets are algebraic**: `V(IJ) = V(I) ∪ V(J)`. Human proof: if
`x` lies in `V(I)` (or `V(J)`), every element of `IJ ⊆ I` (or `⊆ J`) vanishes at `x`.
Conversely, if `x` lies in neither, choose `f ∈ I` and `g ∈ J` with `f(x) ≠ 0 ≠ g(x)`; then
`fg ∈ IJ` and `(fg)(x) = f(x) g(x) ≠ 0` because `K` is a field. Together with
`V(∑ Iᵢ) = ⋂ V(Iᵢ)`, this makes the algebraic sets the closed sets of a topology. -/
theorem zeroLocus_mul {σ k K : Type*} [Field k] [Field K] [Algebra k K]
    (I J : Ideal (MvPolynomial σ k)) :
    MvPolynomial.zeroLocus K (I * J) = MvPolynomial.zeroLocus K I ∪ MvPolynomial.zeroLocus K J := by
  ext x
  simp only [Set.mem_union, MvPolynomial.mem_zeroLocus_iff]
  constructor
  · intro hx
    by_contra h
    simp only [not_or, not_forall] at h
    obtain ⟨⟨f, hfI, hf⟩, ⟨g, hgJ, hg⟩⟩ := h
    have hmem : f * g ∈ I * J := Ideal.mul_mem_mul hfI hgJ
    have hfg : MvPolynomial.aeval x (f * g) = 0 := hx (f * g) hmem
    rw [map_mul] at hfg
    exact mul_ne_zero hf hg hfg
  · rintro (hx | hx) p hp
    · have hpI : p ∈ I := Ideal.mul_le_left (I := I) (J := J) hp
      exact hx p hpI
    · have hpJ : p ∈ J := Ideal.mul_le_right (I := I) (J := J) hp
      exact hx p hpJ
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor

Proposition 4 for the affine line, and for Spec⁡Z\operatorname{Spec}\Z (which is not even T1T_1, by Mathlib's characterisation of T1T_1 spectra of domains):

basic_opens_meetLean 4Proved here from basic factsFormally verified
/-- **The Zariski topology on the affine line is not Hausdorff.** Over an infinite field `k`,
the non-empty open sets of `𝔸¹` are complements of finite sets, and any two of them meet: for
non-zero polynomials `f, g` there is a point `a` with `f(a) ≠ 0` and `g(a) ≠ 0`. Proof: `fg ≠ 0`
has only finitely many roots, and `k` is infinite, so some `a` is not a root of `fg`. So two
distinct points never have disjoint neighbourhoods. -/
theorem basic_opens_meet {k : Type*} [Field k] [Infinite k] {f g : k[X]} (hf : f ≠ 0)
    (hg : g ≠ 0) : ∃ a : k, f.eval a ≠ 0 ∧ g.eval a ≠ 0 := by
  classical
  obtain ⟨a, ha⟩ := Infinite.exists_notMem_finset (f * g).roots.toFinset
  refine ⟨a, ?_⟩
  have hfg : (f * g).eval a ≠ 0 := by
    intro h0
    apply ha
    rw [Multiset.mem_toFinset, mem_roots (mul_ne_zero hf hg)]
    exact h0
  rw [eval_mul] at hfg
  exact ⟨left_ne_zero_of_mul hfg, right_ne_zero_of_mul hfg⟩
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor
spec_int_not_t2Lean 4Proved here from basic factsFormally verified
/-- **`Spec ℤ` is not Hausdorff** — it is not even T₁. Mathlib's
`PrimeSpectrum.t1Space_iff_isField` says that the spectrum of a domain is T₁ exactly when the
domain is a field (the generic point `(0)` is closed only in a field), and `ℤ` is not a field
(`Int.not_isField`). Every Hausdorff space is T₁, so `Spec ℤ` is not Hausdorff. -/
theorem spec_int_not_t2 : ¬ T2Space (PrimeSpectrum ℤ) := by
  intro h
  have h1 : T1Space (PrimeSpectrum ℤ) := inferInstance
  rw [PrimeSpectrum.t1Space_iff_isField] at h1
  exact Int.not_isField h1
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor

The dictionary — Proposition 2 for spectra, and the Nullstellensatz for prime ideals — from Mathlib:

prime_ideal_of_irreducibleLean 4Applies a library theoremFormally verified
/-- **Irreducible closed sets correspond to prime ideals.** In `Spec R`, a set `s` is irreducible
exactly when its vanishing ideal is prime. Mathlib:
`PrimeSpectrum.isIrreducible_iff_vanishingIdeal_isPrime`. For `R = k[x₁, …, xₙ]` with `k`
algebraically closed, this is the statement "affine varieties ↔ prime ideals". -/
theorem prime_ideal_of_irreducible {R : Type*} [CommRing R] (s : Set (PrimeSpectrum R)) :
    IsIrreducible s ↔ (PrimeSpectrum.vanishingIdeal s).IsPrime :=
  PrimeSpectrum.isIrreducible_iff_vanishingIdeal_isPrime
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor
vanishing_of_primeLean 4Applies a library theoremFormally verified
/-- **Prime ideals are recovered from their varieties.** Over an algebraically closed field `K`,
a prime ideal `P` of `k[x₁, …, xₙ]` is the ideal of all polynomials vanishing on `V(P)`:
`I(V(P)) = P`. This is the Nullstellensatz for prime (hence radical) ideals. Mathlib:
`MvPolynomial.IsPrime.vanishingIdeal_zeroLocus`. -/
theorem vanishing_of_prime {K : Type*} [Field K] [IsAlgClosed K] {n : ℕ}
    (P : Ideal (MvPolynomial (Fin n) K)) [P.IsPrime] :
    MvPolynomial.vanishingIdeal K (MvPolynomial.zeroLocus K P) = P :=
  MvPolynomial.IsPrime.vanishingIdeal_zeroLocus P
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor

The cusp example, both halves: the parametrisation is injective, but t∉k[t2,t3]t \notin k[t^2, t^3]. The second proof exhibits the subalgebra of polynomials with no linear term:

cusp_param_injectiveLean 4Proved here from basic factsFormally verified
/-- **The cusp is in bijection with the line.** The morphism `𝔸¹ → C`, `t ↦ (t², t³)`, onto the
cusp `C : y² = x³` is injective: if `s² = t²` and `s³ = t³` then `s = t`. Proof: if `s = 0` then
`t² = 0`, so `t = 0`. Otherwise `t ≠ 0` too, and `s = s³/s² = t³/t² = t`. (It is also surjective
onto `C` over any field, with inverse `(x, y) ↦ y/x` away from the origin.) -/
theorem cusp_param_injective {k : Type*} [Field k] {s t : k} (h2 : s ^ 2 = t ^ 2)
    (h3 : s ^ 3 = t ^ 3) : s = t := by
  by_cases hs : s = 0
  · subst hs
    have ht : t ^ 2 = 0 := by rw [← h2]; ring
    exact (pow_eq_zero_iff two_ne_zero |>.mp ht).symm
  · have hs2 : s ^ 2 ≠ 0 := pow_ne_zero 2 hs
    have ht2 : t ^ 2 ≠ 0 := h2 ▸ hs2
    calc s = s ^ 3 / s ^ 2 := by field_simp
      _ = t ^ 3 / t ^ 2 := by rw [h2, h3]
      _ = t := by field_simp
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor
cusp_not_normalLean 4Proved here from basic factsFormally verified
/-- **…but the cusp is not isomorphic to the line.** The coordinate ring of the cusp is the
subalgebra `k[t², t³] ⊆ k[t]`, and `t` does not lie in it. Proof: the polynomials whose
coefficient of `t` vanishes form a subalgebra (the `t`-coefficient of a product `pq` is
`p₀q₁ + p₁q₀`), which contains `t²` and `t³` but not `t`. So the bijective morphism
`t ↦ (t², t³)` is not an isomorphism: its comorphism `k[t², t³] → k[t]` is not surjective. -/
theorem cusp_not_normal (k : Type*) [Field k] :
    (X : k[X]) ∉ Algebra.adjoin k ({X ^ 2, X ^ 3} : Set k[X]) := by
  -- the subalgebra of polynomials with no linear term
  let S : Subalgebra k k[X] :=
    { carrier := {p | p.coeff 1 = 0}
      mul_mem' := by
        intro p q hp hq
        simp only [Set.mem_ofPred_eq] at hp hq ⊢
        rw [coeff_mul, Finset.Nat.antidiagonal_succ]
        simp [hp, hq]
      add_mem' := by
        intro p q hp hq
        simp only [Set.mem_ofPred_eq, coeff_add] at hp hq ⊢
        rw [hp, hq, add_zero]
      algebraMap_mem' := by
        intro c
        simp }
  have hle : Algebra.adjoin k ({X ^ 2, X ^ 3} : Set k[X]) ≤ S := by
    rw [Algebra.adjoin_le_iff]
    intro p hp
    rcases hp with rfl | rfl
    · show (X ^ 2 : k[X]).coeff 1 = 0
      simp [coeff_X_pow]
    · show (X ^ 3 : k[X]).coeff 1 = 0
      simp [coeff_X_pow]
  intro hX
  have h1 : (X : k[X]).coeff 1 = 0 := hle hX
  simp at h1
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor

Proposition 6 for n=2n = 2, from Mathlib's count of points of projective spaces, and the one-variable fact behind Theorem 7:

projective_plane_cardLean 4Proved here from basic factsFormally verified
/-- **Counting points of the projective plane over a finite field.** `ℙ²(𝔽_q)` — lines through
the origin in `𝔽_q³` — has `q² + q + 1` points: the `q² ` points of the affine plane plus the
`q + 1` points of the line at infinity. Derived from Mathlib's `Projectivization.card_of_finrank`
(`|ℙ(V)| = 1 + q + ⋯ + q^(n-1)` when `dim V = n`). -/
theorem projective_plane_card (k : Type*) [Field k] [Fintype k] :
    Nat.card (ℙ k (Fin 3 → k)) = Fintype.card k ^ 2 + Fintype.card k + 1 := by
  rw [Projectivization.card_of_finrank k (Fin 3 → k) (n := 3) (by simp)]
  simp [Finset.sum_range_succ, Nat.card_eq_fintype_card]
  ring
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor
roots_on_a_lineLean 4Applies a library theoremFormally verified
/-- **The one-variable case of Bézout.** Over an algebraically closed field a polynomial of
degree `d` has exactly `d` roots counted with multiplicity. Restricting a plane curve of degree
`d` to a line gives such a polynomial (or a binary form of degree `d`, in homogeneous
coordinates), which is why a line meets a curve of degree `d` in exactly `d` points of `ℙ²`.
Mathlib: `IsAlgClosed.card_roots_eq_natDegree`. -/
theorem roots_on_a_line {k : Type*} [Field k] [IsAlgClosed k] (p : k[X]) :
    p.roots.card = p.natDegree :=
  IsAlgClosed.card_roots_eq_natDegree
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor

Finally, schemes. Mathlib proves Theorem 10 — the global sections of Spec⁡R\operatorname{Spec} R are RR, and sections over D(f)D(f) are RfR_f — and the scheme form of Theorem 5:

global_sections_specLean 4Applies a library theoremFormally verified
/-- **The global sections of `Spec R` are `R`.** The structure sheaf of the affine scheme
`Spec R` has `R` itself as its ring of global sections — the key theorem of affine schemes
(Hartshorne, Proposition II.2.2). Mathlib: `AlgebraicGeometry.Scheme.ΓSpecIso`. -/
noncomputable def global_sections_spec (R : CommRingCat) : Γ(Spec R, ⊤) ≅ R :=
  Scheme.ΓSpecIso R
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor
sections_basic_openLean 4Applies a library theoremFormally verified
/-- **Sections over a basic open set are a localisation.** On an affine scheme `X`, the ring of
sections over `D(f) = {f ≠ 0}` is the localisation `Γ(X)_f = Γ(X)[1/f]`: "functions on the open
set where `f` does not vanish may have powers of `f` in the denominator". Mathlib:
`AlgebraicGeometry.isLocalization_away_of_isAffine`. -/
theorem sections_basic_open (X : Scheme) [IsAffine X] (f : Γ(X, ⊤)) :
    IsLocalization.Away f Γ(X, X.basicOpen f) :=
  inferInstance
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor
affine_schemes_equiv_ringsLean 4Applies a library theoremFormally verified
/-- **Affine schemes are the opposite of commutative rings.** `Spec` and global sections `Γ` are
inverse equivalences `AffineScheme ≌ CommRingᵒᵖ`: morphisms of affine schemes `Spec S → Spec R`
are exactly ring homomorphisms `R → S`. This is the scheme version of "affine varieties are the
opposite of reduced finitely generated `k`-algebras". Mathlib:
`AlgebraicGeometry.AffineScheme.equivCommRingCat`. -/
noncomputable def affine_schemes_equiv_rings : AffineScheme ≌ CommRingCatᵒᵖ :=
  AffineScheme.equivCommRingCat
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/AlgebraicGeometry.leanTry it in the Lean web editor

What is and is not formalised. Proved here: Proposition 1's union formula, Proposition 4 for A1\mathbb{A}^1 over an infinite field and for Spec⁡Z\operatorname{Spec}\Z, both halves of the cusp example, and #P2(Fq)=q2+q+1\#\mathbb{P}^2(\mathbb{F}_q) = q^2 + q + 1. From Mathlib: irreducible closed sets ↔ primes, the Nullstellensatz, root counting over algebraically closed fields, Γ(Spec⁡R)≅R\Gamma(\operatorname{Spec} R) \cong R, sections over basic opens, and affine schemes ≃ ringsop^{\mathrm{op}}. Not formalised: Bézout's theorem (Mathlib has neither intersection multiplicities of plane curves nor the theorem; Theorems 7–9 are not formalised beyond the root count), Theorem 5 for classical varieties (Mathlib works with schemes instead), and the gluing argument of Theorem 10 in our own words (Mathlib's proof is AlgebraicGeometry.StructureSheaf).

ComputationC

Intersections and points, computed

The first experiment computes Res⁡z(F,G)\operatorname{Res}_z(F, G) for ten pairs of curves after a generic change of coordinates, factors it over Q\Q, and reads off the intersection points and their multiplicities. Points at infinity (the circular points), complex points and tangencies appear exactly as needed to make the total dede — this is the proof sketch of Theorem 9 run on examples.

Bezout's theorem by resultantsPythonExact computationSymbolic computationComputationally tested
"""Bezout's theorem by resultants: counting intersections of plane curves.

Two projective plane curves F = 0 and G = 0 of degrees d and e, with no common
component, meet in exactly d*e points of the complex projective plane,
counted with multiplicity. To see the count, we change coordinates so that
the point [0:0:1] lies on neither curve and eliminate z: the resultant
Res_z(F, G) is a binary form of degree d*e in x and y, and its roots are the
directions from [0:0:1] to the intersection points. Each irreducible factor of
degree m over Q stands for m conjugate points; its exponent is their
intersection multiplicity (tangency, points at infinity and complex points
all appear). We use two different coordinate changes and check that the
pattern of factors agrees - a consistency check of genericity. Exact symbolic
computation with SymPy; evidence for these examples, not a proof of Bezout.
"""

import sympy

X, Y, Z = sympy.symbols("x y z")

#: Two invertible linear changes of coordinates (old variables in terms of new).
CHANGES = (
    {X: X + 2 * Z, Y: X + Y + 5 * Z, Z: X - Y + 3 * Z},
    {X: 2 * X + Y + Z, Y: Y - 5 * Z, Z: X + 3 * Y + Z},
)

CIRCLE = X**2 + Y**2 - Z**2

#: (description, F, G): homogeneous polynomials in x, y, z.
EXAMPLES = [
    ("circle, line y = 0 (2 real points)", CIRCLE, Y),
    ("circle, tangent line y = 1", CIRCLE, Y - Z),
    ("circle, line x = 2 (2 complex points)", CIRCLE, X - 2 * Z),
    ("concentric circles (circular points)", CIRCLE, X**2 + Y**2 - 4 * Z**2),
    ("circles x^2+y^2=1, x^2+y^2=2x", CIRCLE, X**2 - 2 * X * Z + Y**2),
    ("parabola y = x^2, line at infinity", Y * Z - X**2, Z),
    ("cusp y^2 = x^3, its tangent y = 0", Y**2 * Z - X**3, Y),
    ("cusp y^2 = x^3, line x = 0", Y**2 * Z - X**3, X),
    ("node y^2 = x^2(x+1), line y = 2x", Y**2 * Z - X**2 * (X + Z), Y - 2 * X),
    ("elliptic y^2 = x^3-x, circle r = 2", Y**2 * Z - X**3 + X * Z**2,
     X**2 + Y**2 - 4 * Z**2),
]

def degree(f):
    """Total degree of a homogeneous polynomial in x, y, z."""
    return sympy.Poly(f, X, Y, Z).total_degree()

def change_coordinates(f, change):
    """Substitute the linear change of coordinates into f and expand."""
    return sympy.expand(f.subs(change, simultaneous=True))

def is_generic(f, g):
    """True if [0:0:1] lies on neither curve (so Res_z has full degree)."""
    point = {X: 0, Y: 0, Z: 1}
    return f.subs(point) != 0 and g.subs(point) != 0

def intersection_pattern(f, g, change):
    """Sorted (number of points, multiplicity) pairs read off Res_z(f, g)."""
    fc, gc = change_coordinates(f, change), change_coordinates(g, change)
    if not is_generic(fc, gc):
        raise ValueError("[0:0:1] lies on a curve: choose another change")
    res = sympy.resultant(fc, gc, Z)
    if res == 0:
        raise ValueError("the curves have a common component")
    _, factors = sympy.factor_list(res)
    return sorted((sympy.Poly(h, X, Y).total_degree(), m) for h, m in factors)

def total(pattern):
    """Number of intersection points counted with multiplicity."""
    return sum(points * mult for points, mult in pattern)

def describe(pattern):
    """Human-readable form, e.g. '2 pts x1' or '1 pt x2 + 1 pt x1'."""
    parts = []
    for points, mult in sorted(pattern, key=lambda pm: (-pm[1], pm[0])):
        word = "pt" if points == 1 else "pts"
        parts.append(f"{points} {word} x{mult}")
    return " + ".join(parts)

def main():
    print("Intersections in the complex projective plane (multiplicity xm)")
    print(f"{'curves':<38} {'d*e':>3}  points found")
    agree = True
    for name, f, g in EXAMPLES:
        first, second = (intersection_pattern(f, g, c) for c in CHANGES)
        agree = agree and first == second
        de = degree(f) * degree(g)
        print(f"{name:<38} {de:>3}  {describe(first)} = {total(first)}")
    print(f"Both coordinate changes give the same pattern: {agree}")
    print("Points at infinity, complex points and tangency (multiplicity > 1)")
    print("are exactly what is needed for the count to be d*e every time.")
    print()
    print("Epistemic status: exact symbolic computation (resultants and")
    print("factorisation over Q in SymPy) for ten examples; the multiplicities")
    print("are meaningful because the coordinate change is generic, which we")
    print("check only by agreement of two changes. Evidence, not a proof of")
    print("Bezout's theorem.")

if __name__ == "__main__":
    main()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.

The second experiment reduces curves modulo primes and counts their points over Fp\mathbb{F}_p by brute force: P2\mathbb{P}^2 has p2+p+1p^2 + p + 1 points (Proposition 6), the conic and the cusp each have p+1p + 1 (both are in bijection with P1\mathbb{P}^1), and the elliptic curve y2=x3−xy^2 = x^3 - x has p+1−app + 1 - a_p points with ∣ap∣≤2p|a_p| \leq 2\sqrt{p} (Hasse's theorem), ap=0a_p = 0 for p≡3(mod4)p \equiv 3 \pmod 4, and p=(ap/2)2+b2p = (a_p/2)^2 + b^2 for p≡1(mod4)p \equiv 1 \pmod 4 — a first glimpse of the arithmetic of curves.

Points of curves over finite fieldsPythonExact computationExhaustive finite checkComputationally tested
"""Counting points of curves over the finite fields F_p.

A variety defined over the integers can be reduced modulo a prime p and its
points over F_p counted. We count, by brute force over all points of the
projective plane P^2(F_p):

* P^2(F_p) itself, which has p^2 + p + 1 points (proved in the lesson and in
  Lean);
* the conic x^2 + y^2 = z^2, which is isomorphic to the projective line and
  so has p + 1 points for odd p;
* the cuspidal cubic y^2 z = x^3, which is in bijection with P^1 (p + 1
  points) although it is not isomorphic to it;
* the elliptic curve E: y^2 z = x^3 - x z^2, whose number of points
  p + 1 - a_p satisfies Hasse's theorem |a_p| <= 2 sqrt(p), has a_p = 0
  whenever p = 3 (mod 4) (E has complex multiplication by Z[i]), and for
  p = 1 (mod 4) has a_p/2 equal to the odd number a in p = a^2 + b^2.

Exhaustive and exact for the primes listed; the general statements are
theorems (Hasse 1933; Deuring 1941), not consequences of this computation.
"""

import math

def primes_between(lo, hi):
    """Primes p with lo <= p < hi."""
    return [p for p in range(max(lo, 2), hi)
            if all(p % q for q in range(2, math.isqrt(p) + 1))]

def projective_points(p):
    """One representative of each point of P^2(F_p).

    The representatives are (x, y, 1), (x, 1, 0) and (1, 0, 0).
    """
    pts = [(x, y, 1) for x in range(p) for y in range(p)]
    pts += [(x, 1, 0) for x in range(p)]
    pts.append((1, 0, 0))
    return pts

def count_points(form, p):
    """Number of points of P^2(F_p) where the homogeneous form vanishes."""
    return sum(1 for x, y, z in projective_points(p)
               if form(x, y, z) % p == 0)

def conic(x, y, z):
    """The circle x^2 + y^2 = z^2."""
    return x * x + y * y - z * z

def cusp(x, y, z):
    """The cuspidal cubic y^2 z = x^3."""
    return y * y * z - x ** 3

def elliptic(x, y, z):
    """The elliptic curve y^2 z = x^3 - x z^2."""
    return y * y * z - x ** 3 + x * z * z

def trace_of_frobenius(p):
    """a_p = p + 1 - #E(F_p) for the elliptic curve y^2 = x^3 - x."""
    return p + 1 - count_points(elliptic, p)

def is_sum_of_two_squares_with(a, p):
    """True if p - a^2 is a perfect square (so p = a^2 + b^2)."""
    rest = p - a * a
    return rest >= 0 and math.isqrt(rest) ** 2 == rest

def main():
    primes = primes_between(3, 60)
    plane_ok = all(len(projective_points(p)) == p * p + p + 1
                   for p in primes)
    conic_ok = all(count_points(conic, p) == p + 1 for p in primes)
    cusp_ok = all(count_points(cusp, p) == p + 1 for p in primes)
    print(f"Primes 3 <= p < 60 ({len(primes)} primes):")
    print(f"  #P^2(F_p) = p^2 + p + 1:              {plane_ok}")
    print(f"  #conic x^2 + y^2 = z^2 equals p + 1:  {conic_ok}")
    print(f"  #cusp y^2 = x^3 equals p + 1:         {cusp_ok}")
    print("Elliptic curve E: y^2 = x^3 - x, a_p = p + 1 - #E(F_p):")
    rows = [(p, trace_of_frobenius(p)) for p in primes]
    for start in range(0, len(rows), 8):
        chunk = rows[start:start + 8]
        print("  " + "  ".join(f"p={p}:{a:+d}" for p, a in chunk))
    hasse = all(a * a <= 4 * p for p, a in rows)
    supersingular = all(a == 0 for p, a in rows if p % 4 == 3)
    gauss = all(a % 4 == 2 and is_sum_of_two_squares_with(a // 2, p)
                for p, a in rows if p % 4 == 1)
    print(f"  Hasse bound |a_p| <= 2 sqrt(p):       {hasse}")
    print(f"  a_p = 0 whenever p = 3 (mod 4):       {supersingular}")
    print(f"  p = 1 (mod 4): p = (a_p/2)^2 + b^2:   {gauss}")
    print()
    print("Epistemic status: exhaustive, exact counts for the primes listed.")
    print("They illustrate theorems proved elsewhere (the conic is P^1;")
    print("Hasse's bound; Deuring's theorem on supersingular primes) but")
    print("prove nothing about other primes.")

if __name__ == "__main__":
    main()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.
Exercises

Exercises

1. Algebraic geometry

Warm-upHuman

Which of these subsets of the complex line A1=C\mathbb{A}^1 = \mathbb{C} are closed in the Zariski topology? (Choose all that apply.)

Choose all that apply

2. Algebraic geometry

Warm-upHuman

A smooth cubic curve and a conic in the complex projective plane have no common component. In how many points do they meet, counted with multiplicity?

3. Algebraic geometry

CoreHuman

Over C\mathbb{C}, let X=V(x2y, xy2)⊆A2X = V(x^2 y,\, x y^2) \subseteq \mathbb{A}^2. Which ideal is I(X)I(X)?

Choose one

4. Algebraic geometry

CoreHuman

Which argument correctly proves that the hyperbola H=V(xy−1)H = V(xy - 1) is not isomorphic to the affine line A1\mathbb{A}^1 (over C\mathbb{C})?

Choose one

5. Algebraic geometry

CoreHuman

How many points does the projective plane P2(F5)\mathbb{P}^2(\mathbb{F}_5) have?

6. Algebraic geometry

CoreHuman

The concentric circles x2+y2=1x^2 + y^2 = 1 and x2+y2=4x^2 + y^2 = 4 have no common point in C2\mathbb{C}^2. Bézout's theorem promises 44 intersection points in P2(C)\mathbb{P}^2(\mathbb{C}). Where are they?

Choose one

7. Algebraic geometry

StretchHuman

The morphism φ:A1→C=V(y2−x3)\varphi : \mathbb{A}^1 \to C = V(y^2 - x^3), t↦(t2,t3)t \mapsto (t^2, t^3), is a bijection. Which statement explains why it is not an isomorphism?

Choose one

8. Algebraic geometry

CoreFormal

Which Lean statement formalises Proposition 1's identity "the zero set of a product of ideals is the union of the zero sets"? (zeroLocus K I is the set of points of KσK^\sigma where every polynomial in I vanishes.)

Choose one

9. Algebraic geometry

StretchComputational

Write projective_count(f, p) returning the number of points of P2(Fp)\mathbb{P}^2(\mathbb{F}_p) at which the homogeneous polynomial f(x, y, z) (a Python function with integer values) vanishes modulo pp. Use one representative per point: (x,y,1)(x, y, 1), (x,1,0)(x, 1, 0) and (1,0,0)(1, 0, 0).

Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.
Common misconceptionsH

Common misconceptions

Misconception

"The Zariski topology is like the usual topology, only coarser — surely it is Hausdorff." On any irreducible variety with more than one point it is not: any two non-empty open sets meet (Proposition 4). On A1\mathbb{A}^1 the open sets are the cofinite sets. The Zariski topology is still useful — it records which sets are cut out by equations, and irreducibility, dimension and quasi-compactness are all topological notions in it — but limits, continuity arguments and "small neighbourhoods" from analysis do not transfer. Over C\C one also has the classical topology, and comparing the two is the subject of Serre's GAGA.

Misconception

"A variety is just its set of points." Two varieties can be in bijection, even homeomorphic, without being isomorphic: the cusp and the line (bijective morphism, non-isomorphic coordinate rings), or the hyperbola and the line (homeomorphic cofinite spaces, but k[t,t−1]k[t, t^{-1}] has non-constant units). The coordinate ring — more generally the structure sheaf — carries the structure. Schemes go further: Spec⁡k[x]/(x2)\operatorname{Spec} k[x]/(x^2) and Spec⁡k\operatorname{Spec} k have one point each but are different, and the difference (a tangent vector) is exactly what makes tangency count twice in Bézout's theorem.

Misconception

"Two curves of degrees dd and ee meet in dede points — so a line and a circle always meet twice in the plane." Bézout's theorem needs all three repairs: an algebraically closed field (complex points), projective space (points at infinity) and multiplicities (tangency). Two concentric circles have no common point in C2\C^2; their four intersections are the circular points [1:±i:0][1 : \pm i : 0] at infinity, each counted twice.

Misconception

"Equations that cannot be factored define irreducible sets." For a single hypersurface V(f)⊆AnV(f) \subseteq \mathbb{A}^n over an algebraically closed field this is right up to repeated factors: V(f)V(f) is irreducible exactly when ff is a power of an irreducible polynomial. For several equations it fails: V(x2+y2−1, x)={(0,1),(0,−1)}V(x^2 + y^2 - 1,\, x) = \{(0, 1), (0, -1)\} is two points, cut out by an irreducible conic and a line. Irreducibility is a property of the ideal I(X)I(X) — primality (Proposition 2) — not of the chosen generators.

ViewpointsH

Viewpoints

Geometry— Projective geometry and the shape of curves

Projective space makes intersection theory clean: Bézout's theorem, Pascal's theorem (the three intersection points of opposite sides of a hexagon inscribed in a conic are collinear — a consequence of the Cayley–Bacharach theorem on cubics through eight points), and the classification of conics (all smooth conics over C\C are projectively equivalent to xz=y2≅P1xz = y^2 \cong \mathbb{P}^1). The degree of a projective variety X⊆PnX \subseteq \mathbb{P}^n of dimension rr is the number of points in which it meets a general linear subspace of dimension n−rn - r, generalising Theorem 7. For a smooth plane curve of degree dd, the genus g=(d−1)(d−2)/2g = (d - 1)(d - 2)/2 (the degree–genus formula) counts holes in its complex points: lines and conics have genus 00, smooth cubics genus 11, smooth quartics genus 33. Klein's Erlangen programme applies too: projective geometry is the study of invariants of PGL(n+1)PGL(n+1) acting on Pn\mathbb{P}^n (see projective geometry).

Topology— Complex points: Riemann surfaces and the comparison of topologies

Over C\C, a smooth projective curve XX is also a compact Riemann surface in the classical topology, of genus g=dim⁡CH0(X,Ω1)g = \dim_\C H^0(X, \Omega^1): the algebraic genus (holomorphic differentials) equals the topological genus (holes), and χ=2−2g\chi = 2 - 2g. The plane cubic y2=x3−xy^2 = x^3 - x is a torus. Conversely, Riemann's existence theorem says that every compact Riemann surface is a projective algebraic curve, and Serre's GAGA theorem (1956) extends this to coherent sheaves on projective varieties: analytic and algebraic geometry of projective varieties over C\C agree. The Zariski topology is far coarser, but its étale refinement (Grothendieck, Artin) recovers topological invariants algebraically: for a variety over C\C, étale cohomology with Z/n\Z/n coefficients equals singular cohomology (Artin's comparison theorem), and étale cohomology makes sense over any field (see Riemann surfaces and algebraic topology).

Number theory— Rational points and curves over finite fields

The same equations can be solved in Q\Q, in Fp\mathbb{F}_p or in C\C. Over Q\Q the geometry controls the arithmetic: a conic with one rational point has infinitely many (the chord trick, which is Theorem 8 in disguise); the rational points of an elliptic curve form a finitely generated abelian group (Mordell 1922, Weil 1928), via the chord-and-tangent construction from Theorem 7; and a curve of genus ≥2\geq 2 has only finitely many rational points (Faltings, 1983). Over Fq\mathbb{F}_q, counting points gives the zeta function of the variety; Weil proved the analogue of the Riemann hypothesis for curves (1940s), whose concrete form for an elliptic curve is Hasse's bound ∣ap∣≤2p|a_p| \leq 2\sqrt{p} seen in the second experiment, and Deligne proved the Weil conjectures in general (1974) using étale cohomology. Spec⁡Z\operatorname{Spec}\Z and Spec⁡OK\operatorname{Spec}\mathcal{O}_K are themselves one-dimensional schemes, which is the starting point of algebraic number theory and arithmetic geometry.

Analysis— Complex analytic geometry

A complex variety is locally the zero set of holomorphic (indeed polynomial) functions, so complex analysis applies: the local ring OX,P\mathcal{O}_{X,P} embeds in the ring of convergent power series at PP, a smooth point has a neighbourhood biholomorphic to a ball in Cdim⁡X\C^{\dim X} (implicit function theorem), and the intersection multiplicity IP(F,G)I_P(F, G) equals the number of intersection points near PP after a small generic perturbation of GG — a "conservation of number" that is the analytic face of Theorem 9. Chow's theorem (1949) says that a closed analytic subset of Pn(C)\mathbb{P}^n(\C) is algebraic: on compact projective space, analysis produces nothing new. Hodge theory, which decomposes the cohomology of a smooth projective variety using harmonic forms, is an analytic tool with algebraic consequences (see complex and Kähler geometry).

Category theory— Schemes as functors: the functor of points

Theorem 5 says the category of affine varieties is dual to an algebraic category, and Grothendieck's reformulation takes this as the definition: a scheme XX is determined by its functor of points R↦X(R)=Hom⁡(Spec⁡R,X)R \mapsto X(R) = \operatorname{Hom}(\operatorname{Spec} R, X) on commutative rings (Yoneda's lemma). For X=AZnX = \mathbb{A}^n_\Z, X(R)=RnX(R) = R^n; for X=V(y2−x3+x)X = V(y^2 - x^3 + x) over Z\Z, X(R)={(a,b)∈R2:b2=a3−a}X(R) = \{(a, b) \in R^2 : b^2 = a^3 - a\} — the same equation read in every ring at once. Many important spaces are first defined as functors (Grassmannians, Hilbert schemes, moduli of curves) and then shown to be representable. The opens D(f)D(f) and the sheaf condition of Theorem 10 make Spec⁡R\operatorname{Spec} R the beginning of sheaf theory: local data glue to global data, which is the theme of sheaves and, in derived form, of derived categories, which arose from Grothendieck and Verdier's duality theory in algebraic geometry.

History & global context

History and global context

  • Conics and cubics. Apollonius of Perga (c. 200 BCE) studied conic sections synthetically. Diophantus of Alexandria (c. 3rd century CE) found rational solutions of quadratic and cubic equations by chord-type substitutions. Omar Khayyam (Nishapur, c. 1070) solved cubic equations by intersecting conics, classifying the cases geometrically.
  • Coordinates and curves. Fermat and Descartes (1630s) introduced coordinates, turning curves into equations. Newton classified cubic curves (1704). Maclaurin and Euler stated that curves of degrees dd and ee meet in dede points, and Étienne Bézout published a proof for plane curves in his Théorie générale des équations algébriques (1779); rigorous treatments of multiplicities came much later. Jean-Victor Poncelet (1822) made points at infinity and imaginary points systematic in projective geometry.
  • Riemann and after. Bernhard Riemann (1857) studied algebraic curves through Riemann surfaces and introduced the genus; Max Noether, Alexander Brill and the Italian school — Castelnuovo, Enriques and Severi — developed the geometry of curves and the classification of algebraic surfaces, with brilliant intuition but sometimes incomplete proofs.
  • Algebraic foundations. David Hilbert's basis theorem (1890) and Nullstellensatz (1893), and Emmy Noether's ideal theory (1920s), made commutative algebra the foundation. Oscar Zariski and André Weil rebuilt algebraic geometry rigorously in the 1940s; the Zariski topology dates from this work, and Weil's Foundations of Algebraic Geometry (1946) made abstract varieties over arbitrary fields precise. Weil also stated his conjectures on varieties over finite fields (1949).
  • Sheaves and schemes. Jean-Pierre Serre introduced sheaf cohomology into algebraic geometry (Faisceaux algébriques cohérents, 1955) and proved GAGA (1956). Alexander Grothendieck, with Jean Dieudonné, built the theory of schemes in the Éléments de géométrie algébrique (1960–67) and, with many collaborators, the Séminaire de Géométrie Algébrique; Pierre Deligne used étale cohomology to prove the Weil conjectures (1974).
  • A worldwide subject. Kunihiko Kodaira classified compact complex surfaces; Heisuke Hironaka proved resolution of singularities in characteristic zero (1964); M. S. Narasimhan and C. S. Seshadri connected stable vector bundles on curves with unitary representations (1965); David Mumford developed geometric invariant theory and the theory of moduli; Shigefumi Mori founded the minimal model programme for threefolds (1988). More recently Caucher Birkar proved boundedness of Fano varieties (Fields Medal 2018) and June Huh used Hodge theory to settle conjectures in combinatorics (Fields Medal 2022). Andrew Wiles's proof of Fermat's Last Theorem (1995, with Richard Taylor) rests on the arithmetic geometry of elliptic curves and modular curves.
Further reading

Further reading

  • William Fulton, Algebraic Curves: An Introduction to Algebraic Geometry (1969; free revised edition 2008) — the clearest route to intersection multiplicity and a complete proof of Bézout's theorem (Chapters 3 and 5).
  • Frances Kirwan, Complex Algebraic Curves (1992) — curves over C\C, Bézout via resultants, and the topology of Riemann surfaces.
  • Miles Reid, Undergraduate Algebraic Geometry (1988) — short, lively, with conics, cubics and the Nullstellensatz.
  • David Cox, John Little and Donal O'Shea, Ideals, Varieties, and Algorithms (4th ed., 2015) — the dictionary made computational with Gröbner bases and resultants.
  • Igor R. Shafarevich, Basic Algebraic Geometry 1 and 2 (1972; 3rd ed. 2013) — varieties, intersection theory, then schemes and complex manifolds.
  • Robin Hartshorne, Algebraic Geometry (1977) — Chapter I on varieties, Chapter II on schemes and sheaves (Proposition II.2.2 is Theorem 10), Chapter III on cohomology.
  • Joe Harris, Algebraic Geometry: A First Course (1992) — a tour of classical varieties through many examples.