|
The K3 database in Magma is a collection of 24,099 K3 surfaces.
Recall from Section K3 Surfaces the meaning of K3 surface in this
context, and from Section Key Warning and Disclaimer the relationship between
the Hilbert series, the weights and the (Hilbert) numerator.
We describe the set of K3 surfaces selected for inclusion in the
database. For g= - 1, 0, 1, 2, all K3 surfaces of genus g are
included, there being 4281, 6479, 6627 and 6628 surfaces, respectively.
For higher genus, the data associated to the 6628 K3 surfaces
of genus 2 propagates in a predictable way, so only those
K3 surfaces with codimension at most 7 and genus in the range
3 to 9 have been included.
Data is held in blocks of surfaces indexed by the first five
coefficients of their Hilbert series (excluding the constant term).
Note that the t-coefficient of the Hilbert series is one
more that the genus, and this defect holds for all genera.
To determine the number of surfaces of genus 1, the intrinsics
described below may be used. Note the genus argument is a
sequence beginning with the integer 2: the sequence is arranged
so that the user can ask a more precise question by including
other leading genera (up to the first five), and the value 2 is
to account for the genus--Hilbert coefficient defect.
> D := K3Database();
> NumberOfK3Surfaces(D,[2]);
6627
The database is fairly large, so naive searches take time.
Specialised tools, described below, support much more efficient
searches and should be used wherever possible. We demonstrate
this point with timings for a typical search. The first searches
the entire database for all K3 surfaces of genus 3 and takes over
2 minutes. It is much more efficient to use a function that
looks up curves according to their genus, since this is the
primary indexing property used by the database. The second
search does this, and takes only a fraction of the time.
> time S := [ X : X in D | Genus(X) eq 3 ];
Time: 139.510
> time T := [K3Surface(D,[4],i) :i in [1..NumberOfK3Surfaces(D,[4])]];
Time: 0.500
In this section a simple example is presented of extracting a K3 surface
with particular properties from the K3 database. Section Making New Databases
provides much greater details and more examples: note, in particular,
that only a few hundred of the surfaces that occur in small codimension
have been confirmed to exist (even though the vast majority are
believed to exist).
We begin by defining D to be the K3 database.
> D := K3Database();
> D;
The database of K3 surfaces
It contains data associated to 24099 (families of) K3 surfaces.
> #D;
24099
There are several ways to access the K3 surfaces in the database.
In the first place, the database is organised into blocks of K3 surfaces
that have a common genus. These blocks are then subdivided into K3
surfaces that have a common 2-genus. The blocks having a common
2-genus are further subdivided right down to 5-genus, that is,
the coefficient of t5 in the Hilbert series.
These subdivisions are the natural indexing units of the database.
One gets the third surface with genus 0 by
> X := K3Surface(D,0,3);
> X;
K3 surface no.3, genus 0, in codimension 1 with data
Weights: [ 1, 6, 8, 9 ]
Basket: 1/2(1,1), 1/3(1,2), 1/9(1,8)
Degree: 1/18 Singular rank: 11
Numerator: -t^24 + 1
Projection to codim 1 K3 no.2 -- type I from 1/9(1,8)
Unproj'n from codim 2 K3 no.4 -- type I from 1/10(1,9)
Unproj'n from codim 2 K3 no.15 -- type IV from 1/5(2,3)
Unproj'n from codim 3 K3 no.28 -- type II_1 from 1/4(1,3)
Unproj'n from codim 4 K3 no.84 -- type II_2 from 1/3(1,2)
Unproj'n from codim 6 K3 no.280 -- type II_5 from 1/2(1,1)
This printout displays a lot of information about this surface and its
relationship to other surfaces. The minimal printing option may be use
to obtain a concise description of this surface alone.
> X:Minimal;
K3 surface (g=0, no.3) in P^3(1,6,8,9)
Basket: 1/2(1,1), 1/3(1,2), 1/9(1,8)
Numerator: -t^24 + 1
When using several genera to access a surface, the genus arguments
must be collected together in a sequence. For example, there are 282
K3 surfaces whose first three genera are p1 = 0, p2 = 1, p3 = 3;
that is, have weights that are of the form [2, 3, 3, ... ].
> NumberOfK3Surfaces(D,[0,1,3]);
282
We get the first of these as follows. The arguments inside the
sequence brackets are coefficients of the Hilbert polynomial, while
the corresponding genus is one less than the coefficient. N.B. Note
the offset by -1 between these arguments and the genera.
> K3Surface(D,[0,1,3],1);
K3 surface no.1130, genus -1, in codimension 4 with data
Weights: [ 2, 3, 3, 3, 4, 4, 5 ]
Basket: 2 x 1/2(1,1), 5 x 1/3(1,2)
Degree: 1/3 Singular rank: 12
Numerator: t^24 - ... + t^10 - t^9 - 2*t^8 - t^7 - t^6 + 1
Projection to codim 1 K3 no.820 -- type II_2 from 1/3(1,2)
Unproj'n from codim 5 K3 no.1131 -- type I from 1/5(2,3)
Unproj'n from codim 6 K3 no.1145 -- type II_1 from 1/4(1,3)
Unproj'n from codim 7 K3 no.1412 -- type II_2 from 1/3(1,2)
Unproj'n from codim 8 K3 no.2176 -- type IV from 1/2(1,1)
The genus and number of a K3 surface identifies it uniquely in the
database, so the same function may be used to see surface number
1131 which has projection to X.
> K3Surface(D,-1,1131) : Minimal;
K3 surface (g=-1, no.1131) in P^7(2,3,3,3,4,4,5,5)
Basket: 1/2(1,1), 4 x 1/3(1,2), 1/5(2,3)
Numerator: -t^29 + ... + 6*t^11 - 3*t^9 - 4*t^8 - t^7 - t^6 + 1
The projection is from the oneover(5)(2, 3) singularity, resulting
in the extra oneover(2)(1, 1) and oneover(3)(1, 2) points.
There are also searches that do not use the primary indexing directly.
For example, the following variation of K3Surface searches for
a K3 surface with weights 2, 2, 3, 5, 7, 9, 11.
> K3Surface(D,[2,2,3,5,7,9,11]) : Minimal;
K3 surface (g=-1, no.1615) in P^6(2,2,3,5,7,9,11)
Basket: 3 x 1/2(1,1), 1/11(2,9)
Numerator: t^39 - ... + t^16 - t^13 - t^11 - t^9 + 1
The database of K3 surfaces.
The integer n such that the K3 surface
Y := K3Surface(D,Genus(X)+1,n) in the database D has the same Hilbert series
as the K3 surface X. The second return value is the K3 surface Y. If there
is no such K3 surface, the returned index value is zero.
The integer i such that the K3 surface Y := K3Surface(D,i)
in the database D has the same Hilbert series as the K3 surface
X. The second return value is
the K3 surface Y. If there is no such K3 surface, the returned
index value is zero.
The `Number' of a K3 surface in the database and its `Index'
may differ: the K3 surfaces of any fixed genus are numbered
separately, while the index runs over the whole database.
To illustrate this, consider the following K3 surface.
> X := K3Surface(1,[[2,1],[3,1],[4,1],[7,1],[8,1]]);
> X;
K3 surface in codimension 11 with data
Weights: [ 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 6, 7, 8 ]
Basket: 1/2(1,1), 1/3(1,2), 1/4(1,3), 1/7(1,6), 1/8(1,7)
Degree: 613/168 Singular rank: 19
Numerator: -t^47 + ... + 38*t^7 - 2*t^6 - 13*t^5 - 7*t^4 + 1
This surface has been calculated in isolation. The weights
that have been assigned to it are just enough to make sense
of the initial terms of the Hilbert series, and to make
the singularities. By construction, the K3 database may have
added weights to make simple projections work.
So we search for X in the database using either `Index' or
`Number'.
> D := K3Database();
> n,Y := Number(D,X);
> i,Y1 := Index(D,X);
> n,i;
1474 12234
This result means that X has the same Hilbert series as the
1474-th K3 surface in D of genus 1, which is the same as the
12234-th K3 surface in D.
> Y eq Y1;
true
> Y1 eq K3Surface(D,i);
true
One can see that Y is in much higher codimension than X, so
that extra weights have been assigned to Y.
> Codimension(Y);
17
The ith K3 surface in the K3 database D.
The ith K3 surface in the K3 database D among those with
index suite Q = [g1 + 1, g2 + 1, ...].
The ith K3 surface in the K3 database D among those with
genus g ≥ - 1.
The ith K3 surface in the K3 database D among those with
genus g1≥ - 1 and 2-genus g2≥ - 1.
The K3 surface in the K3 database D having the weights specified
in the sequence W.
K3Surface(D,g,B) : DB,RngIntElt,SeqEnum -> GRK3
The K3 surface in the K3 database D with genus g ≥ - 1
and basket of singularities B (as a basket type or in raw
sequence format).
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|