Rational curves on a quintic threefold

Quintic threefolds are degree-5 smooth hypersurfaces in $\mathbf P^4$. To fix notations we will write $\mathbf P(V_5)$ for the projective space, where $V_5$ is a fixed 5-dimensional vector space, $f\in \mathrm{Sym}^5V_5^\vee$ for a quintic polynomial, and $X=V(f)$ for the quintic threefold.

It is conjectured by Clemens that there are a finite number of rational curves in each degree on a generic quintic threefold (this means that if we look inside the space of all quintic polynomials $f$, there is a Zariski dense subset on which this is true).

The virtual numbers of rational curves in each degree were predicted by mirror symmetry, and proved using moduli spaces of maps and localization formula. In lower degrees, the virtual number is equal to the actual number of rational curves. Here we compute this number for degrees 1,2, and 3, following the documentation of Chow.


This is a classical result obtained by Schubert. We consider the Grassmannian $G:=\mathrm{Gr}(2,V_5)$ that parametrizes lines in $\mathbf P(V_5)$. Let $S$ be the tautological subbundle. The quintic polynomial $f$ gives a section of the vector bundle $\mathrm{Sym}^5S^\vee$ by restriction (i.e., at a point $[V_2]$ we get $f|_{V_2}\in \mathrm{Sym}^5 V_2^\vee$), so the number of lines is equal to the top Chern class of this bundle.

julia> G = grassmannian(2, 5)
AbsVariety of dim 6

julia> S = G.bundles[1]
AbsBundle of rank 2 on AbsVariety of dim 6

julia> integral(ctop(symmetric_power(5, dual(S))))


This number is obtained by Katz. A conic spans a unique plane $\mathbf P(V_3)$ and gives a point $[V_3]$ in $G:=\mathrm{Gr}(3,V_5)$. Conversely, for each $V_3$ there is a projective space $\mathbf P(\mathrm{Sym}^2V_3^\vee)$ parametrizing conics contained in it. In the relative setting, we are thus inside the projective bundle $M:=\mathbf P_G(\mathrm{Sym}^2S^\vee)$, where each point is a pair $([V_3],[q])$ with $[q]\in \mathbf P(\mathrm{Sym}^2V_3^\vee)$.

julia> G = grassmannian(3, 5)
AbsVariety of dim 6

julia> S = G.bundles[1]
AbsBundle of rank 3 on AbsVariety of dim 6

julia> M = proj(symmetric_power(2, dual(S)))
AbsVariety of dim 11

At each $[V_3]$, the restriction $f|_{V_3}$ defines a plane quintic curve (i.e., the intersection $X\cap \mathbf P(V_3)$). If we want a given conic $V(q)$ to be contained in $X$, the quintic should split into the product of $q$ and a cubic. In other words, $f|_{V_3}\in \mathrm{Sym}^5V_3^\vee$ should lie in the subspace $\langle q\rangle\otimes \mathrm{Sym}^3V_3^\vee$.

In the relative setting, $\langle q\rangle$ becomes the tautological subbundle $T$ on $M$, and we get a bundle map

\[T\otimes \mathrm{Sym}^3S^\vee\hookrightarrow \mathrm{Sym}^5S^\vee.\]

We can view $f$ as a section of the quotient bundle $B:=\mathrm{Sym}^5S^\vee\,/\,(T\otimes \mathrm{Sym}^3S^\vee)$, and the set of conics is precisely determined by the vanishing of this section. Again it suffices to compute the top Chern class of $B$.

julia> T = M.bundles[1]
AbsBundle of rank 1 on AbsVariety of dim 11

julia> B = symmetric_power(5, dual(S)) - T * symmetric_power(3, dual(S))
AbsBundle of rank 11 on AbsVariety of dim 11

julia> integral(chern(B))

Twisted cubics

This number is computed by Ellingsrud and Strømme. The problem is a lot more complicated, due to the fact that a twisted cubic is not a complete intersection. We will need to first understand their parameter space.

The parameter space of twisted cubics

We begin by describing the parameter space of twisted cubics in $\mathbf P^3=\mathbf P(V_4)$. The Hilbert scheme $\mathrm{Hilb}_{3t+1} \mathbf P^3$ has two irreducible components: the one that parametrizes twisted cubics has dimension 12 and will be denoted as $H$; the other parametrizes smooth plane cubic curves plus a point in space, and has dimension 15. They intersect along a divisor $Y$ in $H$, parametrizing singular plane cubics with an embedded point at the singularity.

The twisted cubic is not a complete intersection: its ideal is generated by 3 quadric equations that have linear relations. Equivalently, this means that they can be given as the 2-minors of a $3\times 2$ matrix of linear forms on $V_4$ (i.e., a net of quadrics that is determinantal).

There is a good moduli space $N(q;m,n)$ parametrizing $n\times m$ matrices of linear forms on a $q$-dimensional vector space, as long as we have $\mathrm{gcd}(m,n) = 1$: this is realized as a GIT quotient by the group $\mathrm{GL}(m)\times \mathrm{GL}(n)$. There are two tautological bundles $E$ and $F$ of rank $n$ and $m$ on the moduli space, whose Chern classes generate the Chow ring. We may thus obtain an explicite description: this can be done by the function matrix_moduli(q,m,n).

julia> X = matrix_moduli(4,2,3)
AbsVariety of dim 12

Let $X$ be the moduli space $N(4;2,3)$. By sending each twisted cubic to the matrix of its ideal, we get a rational map from $H$ to $X$. This is a birational map; in fact, it is the blowup along a subvariety $i:I\hookrightarrow X$, and $Y$ is the exceptional divisor. Points in $I$ correspond to ideals of a plane plus an embedded point, and $I$ is isomorphic to the incidence subvariety in $\mathbf P(V_4)\times \mathbf P(V_4^\vee)$ consisting of pairs $(p,f)$ such that $f$ vanishes at $p$. The fiber of $H\to X$ at each point of $I$ consists of all singular plane cubics passing doubly through the distinguished point: this is a linear condition and we get a $\mathbf P^6$.

Twisted cubics on a quintic threefold

Now that the parameter space $H$ has been worked out, we can go to the relative setting. A twisted cubic generates a unique $\mathbf P(V_4)$ and gives a point in $G:=\mathrm{Gr}(4,V_5)$. We construct the relative version of $X$ and $I$ with respect to the rank-4 subbundle.

julia> G = grassmannian(4, 5)
AbsVariety of dim 4

julia> V = G.bundles[1]
AbsBundle of rank 4 on AbsVariety of dim 4

julia> X = matrix_moduli(V, 2, 3)
AbsVariety of dim 16

julia> F, E = X.bundles;

The incidence variety $I$ and its tautological bundles.

julia> PV = proj(V)
AbsVariety of dim 7

julia> S, Q = PV.bundles;

julia> I = proj(dual(Q))
AbsVariety of dim 9

julia> T, R = I.bundles;

The inclusion $i:I\hookrightarrow X$.

julia> iˣE = T * dual(Q)
AbsBundle of rank 3 on AbsVariety of dim 9

julia> iˣF = T * dual(R) * det(dual(Q))
AbsBundle of rank 2 on AbsVariety of dim 9

julia> image = vcat(chern(iˣE)[1:3], chern(iˣF)[1:2], (I → G).pullback.(gens(G.ring)));

julia> i = hom(I, X, image, :alg)
AbsVarietyHom from AbsVariety of dim 9 to AbsVariety of dim 16

Blowing up $I$ and compute the Chern class, which leads to the final result.

julia> H, Y = blowup(i)
(AbsVariety of dim 16, AbsVariety of dim 15)

julia> A = OO(H) * symmetric_power(5, dual(V)) - (E * symmetric_power(3, dual(V)) - F * symmetric_power(2, dual(V)))
AbsBundle of rank 16 on AbsVariety of dim 16

julia> B = pushforward(Y → H, symmetric_power(2, dual(S) + R) * det(dual(Q)) * OO(Y, -1))
AbsBundle of rank 0 on AbsVariety of dim 16

julia> integral(chern(A - B))

The entire computation is available as the function twisted_cubics_on_quintic_threefold.

julia> @time IntersectionTheory.twisted_cubics_on_quintic_threefold()
  4.150781 seconds (25.35 M allocations: 334.548 MiB, 1.02% gc time)

The above is computed on an Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz, while the same computation in Chow requires a full minute. This showcases the high efficiency of the Julia/Oscar combo (although some components of the blowup procedure in Chow are far from optimal; we implemented the algorithms from Macaulay2 instead).