I like Fano 3-folds. I like them so much that I created Fanography!

One thing which I found intriguing in the story one aspect of the details of the Mori–Mukai classification that is not often mentioned. Namely, at the very end of their Classification of Fano threefolds with $\mathrm{b}_2\geq 2$, I, in paragraph (7.33), they introduce an invariant that they need to distinguish between various Fano 3-folds with otherwise the same numerical invariants.

For instance, the families 2.22 and 2.24 have the same Hodge numbers and volume (the invariants that were most easily computed from their birational description), so, a priori, they could be the same family (or one a subfamily of the other). They needed a numerical deformation invariant to distinguish these families, and I found it frustrating that I could not find this invariant computed for all Fano 3-folds (Mori–Mukai only give it for the cases they need to distinguish), so that I could include it in Fanography. But this frustration is now gone!

The invariant

For a smooth Fano 3-fold $X$ with $\operatorname{Pic}(X)$ of rank $\rho$ and a $\mathbb{Z}$-basis $D_1, \dots, D_\rho$, Mori and Mukai define

\[ d(X) = \det\bigl( -\mathrm{K}_X \cdot D_i \cdot D_j \bigr)_{1 \le i, j \le \rho}. \]

It is basis-independent and a deformation invariant, and its sign is $(-1)^{\rho-1}$. I like to call it the Mori–Mukai determinant.

Computing it with OSCAR

Mori and Mukai give a lemma (their Lemma 7.34) which describes how to compute the determinant for a Fano 3-fold $Y$, if $Y=\mathop{\rm Bl}_CX$ or $Y=\mathop{\rm Bl}_pX$. However, I decided to have a little fun, and use IntersectionTheory in OSCAR (see also my earlier post Intersection theory in OSCAR). That way, I could test the package a bit more, and also use it to compute the determinant for primitive cases of higher Picard rank.

The code is in FanoThreefoldMoriMukaiDeterminant.jl. It encodes all the primitive Fano 3-folds using IntersectionTheory (except for a few of Picard rank 1 where no construction is available, e.g., because they involve weighted projective spaces) and then encodes all the imprimitive ones as blowups. This is all data that was already in Fanography.

Using it

Using the code is not very hard. It suffices to do

using FanoThreefoldMoriMukaiDeterminant

mori_mukai_determinant("2-22")   # d(X) for one family
determinants()                   # Dict id => d(X) for all 105 families

Julia has a high precompilation cost, if you disregard that, the computation itself finishes in 10 seconds or so on my machine (and I have not tried to improve it whatsoever). A full CI run, installing Julia and Oscar from scratch, took 15 minutes.

All the values

For completeness, here is $d(X)$ for all 105 deformation families, organised by Picard rank $\rho$. The entry in row $k$ and column $\rho$ is the determinant of the family $\rho.k$ (in Mori–Mukai's numbering, as used on Fanography, with 4.13 the case missing from their classification).

ρ = 1ρ = 2ρ = 3ρ = 4ρ = 5ρ = 6ρ = 7ρ = 8ρ = 9ρ = 10
12-116-4856-80128-192256-256
24-416-3244
36-428-4848
48-924-40
510-928-39
612-1232-44
714-1636-39
816-834-32
918-1712-31
1022-1640-28
112-1328-23
124-2036-20
136-2440-44
148-2518
1510-1234
166-2030
174-2528
18-1626
19-1724
20-2928
21-2822
22-2418
23-1620
24-2122
25-1620
26-2118
27-1716
28-916
29-1612
30-1214
31-1312
32-12
33-9
34-9
35-8
36-5

The data will appear very soon on Fanography too! But that is for another blogpost, where I discuss some other changes and improvements to Fanography.