[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Relations between K3 Surfaces

Subsections

Projection and Unprojection

The functions here search through the entire database DB so often take some time. For the codimension 4 database it takes the order of 30 seconds to compute all centres, for instance.

Centres(~X,DB) : VSrfK3,SeqEnum ->
Centres(~DB) : SeqEnum ->
The intrinsic Centres(~X,DB) runs through the singularities of the K3 surface X to see which might be reasonable centres of projection. Then it runs through these candidate centres and for each it scours the sequence DB of K3 surfaces for plausible images of the projection. The intrinsic Centres(~DB) simply does the same for every element of the sequence DB. The result of the test is included in each K3 and visible on printing or by using the Centres(X) function.

What is considered a reasonable centre and what is a plausible image?

The only centres recorded are singularities of the form oneover(r)(a, r - a), denoted [r, a] or [r, a, r - a] in Magma, for which there is a weight equal to r. A plausible image of the centre [r, a, r - a] of X is any K3 in the database sequence which has basket of singularities the same as that of X but with [r, a] removed and replaced by any pair of singularities of indices r and r - a. (In the case that one or both of these is 1 it is ignored.) There is a slight gap in the current version of the algorithm at this point: the calculus which predicts the local polarisation degrees of the image singularity as well as their index is not yet implemented so not all projections will necessarily satisfy these local conditions on their singularities.

The Type of the centre [r, a] of X is then determined as follows. The phrase "there are suitable weights" means that there are weights of X congruent to the local polarising weights a and to r - a modulo r. The phrase "there is an image" means that there is a plausible image.

There are suitable weights equal to their local polarising weights and there is an image whose codimension is at least that of X

There are suitable weights both of which are actually equal to their local polarising weights and there is an image whose codimension is one less than that of X

There are suitable weights exactly one of which is actually equal to its local polarising weight and there is an image

There are suitable weights satisfying the equality conditions of 1 or 2, but there is not an image

There are suitable weights, but neither is actually equal to a local polarising weight, and there is an image

As 4 but no image

There are no suitable weights but there is a plausible image.
Centres(X) : VSrfK3 -> SeqEnum
Return the known centres of the K3 surface X. The format is a sequence of elements of the form

[ [r, a, r - a], [i], [n_1, ... ], [c_1, ... ] ]

where i is the Type of the centre and the final two sequences are parallel sequences of the numbers of plausible images together with their codimensions. This function makes no attempt to compute centres, but simply returns those that have already been computed (by Centres(~X,DB), for instance).

HasCentreType(X,i) : VSrfK3,RngIntElt -> BoolElt
True if and only if the K3 surface X has a centre of Type i among its centres that have already been computed.

Example K3_k3-projection (H91E1)

We try to replicate the separation into quadratic involutions and elliptic involutions exhibited in the Big Table of [CPR00]. Their term "quadratic involution" corresponds to our Type 0 centre in codimension 1 (it's really Type 1 but is pressed for room already being in codimension 1). Their "elliptic involution" corresponds roughly but not exactly to our Type 2. The numbering of items of the Big Table is the same as the AFR numbering of the codimension 1 part of the database. That paper is interested in projections of Fano 3-folds, but the calculations are mirrored in K3 surfaces which appear as anticanonical divisors. Practically this means that one should add a 1 to the beginning of the weights sequence of the K3 to see the corresponding Fano.

> K := K3Database(1); 
> #K;
95
> Centres( K);
> QI := [ X : X in K | HasCentreType(X,0) ];
> EI := [ X : X in K | HasCentreType(X,2) ];
> #QI;
45
> #EI;
24
This is where the work begins as one has to work with each case in turn. You can check that the Big Table has 45 Fanos with a quadratic involution. (I haven't confirmed that they really are the same as these 45, but they certainly should be.) The Big Table has only 8 Fanos with an elliptic involution. So a number of our proposed Type 2 projections must fail for some reason. We look for elliptic involutions. The first case is the following.

> EI[1];
Codimension 1 Numerical K3 number 4 with data
    Weights: [ 4, 5, 13, 22 ]
    Numerator: -t^44 + 1
    Basket: [ 2, 1 ], [ 5, 2 ], [ 13, 4 ]
    Centre 1: [ 5, 2, 3 ] has Type 5 projection
    Centre 2: [ 13, 4, 9 ] has Type 2 projection to [ 19 ] in codim [ 1 ]
The index 5 singularity has Type 5 since no image can be found although the weights are appropriate for making some kind of projection calculation. This is a quite common phenomenon for singularities whose index is small relative to the weights. The proposed Type 2 projection from the index 13 singularity doesn't actually generate an elliptic involution, even though it presents itself as a Type 2 projection. It is excluded using other arguments in [CPR00]. So we look at the second case.

> SetAFR( K);
> EI[2];
Codimension 1 Numerical K3 number 6, Reid1(76), with data
    Weights: [ 5, 6, 8, 11 ]
    Numerator: -t^30 + 1
    Basket: [ 2, 1 ], [ 8, 3 ], [ 11, 5 ]
    Centre 1: [ 8, 3, 5 ] has Type 2 projection to [ 17 ] in codim [ 1 ]
    Centre 2: [ 11, 5, 6 ] has Type 0 projection to [ 21 ] in codim [ 1 ]
These two projections correspond the two involutions of No.76 of the Big Table of [CPR00]. There you can see the kind of explicit polynomial checks required to complete the computation by hand.
ProjectionChains(X,DB) : VSrfK3,SeqEnum -> SeqEnum
This returns a coded account of all sequences of projections starting at X. The computations are carried out with the centres that have already been computed. No new centres are computed. Each chain is a sequence of the form [c_1, c_2, ..., c_r, e] where each c_i represents a centre on a K3 Y in the form

[ [( Number(Y)), ( Codimension(Y))], [r, a, r - a], [( Number(Z))] ]

where Z is a proposed image of projection from [r, a, r - a]. The following term c_(i + 1) will represent a projection from this Z. The final term e is simply [ [( Number(Z)), ( Codimension(Z))] ]. The projection chain is said to have length r. There cannot be infinite chains of projection since the total index of all singularities drops on projection. This function is very simple and is perhaps more an example of how to program simple search routines for the database than a tool in its own right.

As an exercise, use this function to check that the example EI[2] above has only two projection chains of length 1 while QI[1] has a single projection chain of length 2.

Unprojections(~X,DB) : VSrfK3,SeqEnum ->
Unprojections(~DB) : SeqEnum ->
When called with a K3 surface X belonging to a database DB, this computes a sequence of the identifying numbers of elements of DB that are known to have a projection to X. For real effect, the function Centres( DB) should have been run before this is called. The result is cached with X and can be recovered using the Unprojections(X) intrinsic. When this intrinsic is called with only the database argument, it makes the unprojection computation for every element of the database.
Unprojections(X) : VSrfK3 -> SeqEnum
A sequence of the identifying numbers of K3 surfaces (in the database of the current Magma session) which have a known projection to X.

Example K3_k3-unprojection (H91E2)

In this example we find all codimension 2 K3 surfaces which have a Type 1 projection to a single K3 surface in codimension 1. We start below by accessing the database up to codimension 2, computing all centres of projection for it and identifying those codimension 2 elements which have a Type 1 centre.

> K2 := K3Database(2);       
> Centres( K2);
> SetAFR( K2);               
> C2 := [ X : X in K2 | Codimension(X) eq 2 ];
> good := [ X : X in C2 | HasCentreType(X,1) ];
> #good;
66
So there are 66 of these interesting families. Scanning the first few, one notices that the image K3 number 34 often appears. So we name it X and compute its unprojections in the database, that is, we search for all K3s in the database which have X as the image of a Type 1 projection. The last line lists the unprojections (by their identifying numbers in the database) and we see that there are exactly five.

> X := K2[34];
> X;
Codimension 1 Numerical K3, number 34, Reid1(33), with data
    Weights: [ 2, 3, 5, 7 ]
    Numerator: -t^17 + 1
    Basket: [ 2, 1 ], [ 3, 1 ], [ 5, 2 ], [ 7, 2 ]
    Centre 1: [ 2, 1, 1 ] has Type 5 projection
    Centre 2: [ 3, 1, 2 ] has Type 5 projection
    Centre 3: [ 5, 2, 3 ] has Type 0 projection to [ 68 ] in codim [ 1 ]
    Centre 4: [ 7, 2, 5 ] has Type 0 projection to [ 71 ] in codim [ 1 ]
> Unprojections( X,K2);
> Unprojections(X);
[ 6, 10, 14, 17, 23 ]
Next we make a sequence containing these five unprojections and confirm that they all have codimension 2.

> UX := [ K3Surface(K2,n) : n in Unprojections(X) ];
> #UX;
5
> &and[ Codimension(X) eq 2 : X in UX ];
true
And finally, we cannot resist quickly looking at them.

> UX;
[
    Codimension 2 Numerical K3, number 6, Fletcher2(64), with data
        Weights: [ 2, 3, 5, 7, 12 ]
        Numerator: t^29 - t^15 - t^14 + 1
        Basket: [ 2, 1 ], [ 3, 1 ], [ 12, 5 ]
        Centre 1: [ 3, 1, 2 ] has Type 5 projection
        Centre 2: [ 12, 5, 7 ] has Type 1 projection to [ 34 ] in codim [ 1 ],
    Codimension 2 Numerical K3, number 10, Fletcher2(52), with data
        Weights: [ 2, 3, 5, 7, 8 ]
        Numerator: t^25 - t^15 - t^10 + 1
        Basket: [ 2, 1 ], [ 7, 2 ], [ 8, 3 ]
        Centre 1: [ 7, 2, 5 ] has Type 1 projection to [ 27 ] in codim [ 1 ]
        Centre 2: [ 8, 3, 5 ] has Type 1 projection to [ 34 ] in codim [ 1 ],
    Codimension 2 Numerical K3, number 14, Fletcher2(57), with data
        Weights: [ 2, 3, 5, 7, 9 ]
        Numerator: t^26 - t^14 - t^12 + 1
        Basket: [ 3, 1 ], [ 5, 2 ], [ 9, 2 ]
        Centre 1: [ 3, 1, 2 ] has Type 5
        Centre 2: [ 5, 2, 3 ] has Type 1 projection to [ 31 ] in codim [ 1 ]
        Centre 3: [ 9, 2, 7 ] has Type 1 projection to [ 34 ] in codim [ 1 ],
    Codimension 2 Numerical K3, number 17, Fletcher2(50), with data
        Weights: [ 2, 3, 5, 7, 7 ]
        Numerator: t^24 - t^14 - t^10 + 1
        Basket: [ 3, 1 ], [ 7, 2 ], [ 7, 2 ]
        Centre 1: [ 3, 1, 2 ] has Type 5 projection
        Centre 2: [ 7, 2, 5 ] has Type 1 projection to [ 34 ] in codim [ 1 ]
        Centre 3: [ 7, 2, 5 ] has Type 1 projection to [ 34 ] in codim [ 1 ],
    Codimension 2 Numerical K3, number 23, Fletcher2(44), with data
        Weights: [ 2, 3, 5, 5, 7 ]
        Numerator: t^22 - t^12 - t^10 + 1
        Basket: [ 5, 2 ], [ 5, 2 ], [ 7, 2 ]
        Centre 1: [ 5, 2, 3 ] has Type 1 projection to [ 34 ] in codim [ 1 ]
        Centre 2: [ 5, 2, 3 ] has Type 1 projection to [ 34 ] in codim [ 1 ]
        Centre 3: [ 7, 2, 5 ] has Type 1 projection to [ 38 ] in codim [ 1 ]
]

UnprojectionChains(X,DB) : VSrfK3,SeqEnum -> SeqEnum
This computes and returns a sequence of "unprojection sequences" of the K3 surface X. Each unprojection sequence is a sequence of identifying numbers of K3 surfaces in the sequence DB of the form [i_1, i_2, ...i_r] where the K3 surface number i_(k + 1) has a projection to the K3 surface number i_k.

Example K3_k3-unprojection-chain (H91E3)

We look again at unprojections from a particular X, this time considering unprojections in the full codimension 4 database.

> K4 := K3Database(4);
> Centres( K4);
> Unprojections( K4);
> SetAFR( K4);
> X := K3SurfaceFromWeights(K4,[2,3,5,7]);
> X;
Codimension 1 Numerical K3 number 63, Reid1(33), with data
    Weights: [ 2, 3, 5, 7 ]
    Numerator: -t^17 + 1
    Basket: [ 2, 1 ], [ 3, 1 ], [ 5, 2 ], [ 7, 2 ]
    Centre 1: [ 3, 1, 2 ] has Type 5 projection
    Centre 2: [ 5, 2, 3 ] has Type 0 projection to [ 103 ] in codim [ 1 ]
    Centre 3: [ 7, 2, 5 ] has Type 0 projection to [ 106 ] in codim [ 1 ]
    Unprojections : [ 18, 25, 32, 36, 44, 69, 78 ]
> [ Codimension(K3Surface(K4,n)) : n in Unprojections(X) ];
[ 2, 2, 2, 2, 2, 3, 4 ]
The codimension 2 unprojections are nice, but even more exciting are the codimension 3 and 4 unprojections. Later on we must have a look at them to check that they really project in the way this claims. But first we want to see whether there are any long unprojection chains that start in high codimension and end up, after two or three projections, at X.

> UUX := UnprojectionChains(X,K4);
Looking at the sequence UUX we see a number of nice long chains of unprojection. They need to be checked, but two examples are the Type 1 projections

( Reid)(33) leftarrow ( Fletcher)(44) leftarrow ( Altinok)_3(48) leftarrow ( Altinok)_4(79)

and the Type 1 projection followed by a Type 2 projection

( Reid)(33) leftarrow ( Altinok)_3(68) leftarrow ( Altinok)_4(94).


 [Next][Prev] [Right] [Left] [Up] [Index] [Root]