Degree 2 K3 Surfaces

Contents

Introduction

We refer to K3 surfaces that can be represented as the desingularisation of a double cover of the projective plane P2 ramified over a sextic curve as degree 2 K3 surfaces. This condition on K3 surfaces is equivalent to the existence of an irreducible divisor of self-intersection 2. The divisor map of such a divisor is the required double cover of P2. Conversely, the pullback of a general line in a double-cover presentation gives an irreducible divisor of self-intersection 2.

If we take a (normal) double cover of the plane ramified over a reduced sextic (degree 6) curve, the desingularisation gives a K3 surface if and only if the curve has at worst simple curve singularities (s-c-s). If the singularities are worse, the resulting double-cover surface has Kodaira dimension -1. Given the s-c-s condition, the normal double cover ramified over the sextic has simple singularities precisely over the singularities of the sextic (so is already non-singular if the sextic is). For more information on this and more general surface double covers, see Ch. III, Section 7 and Ch. V, Section 22 of [BHPdV04].

This section describes functionality to work with degree 2 K3 surfaces given by the (generally singular) normal double-cover model naturally embedded in a weighted P(1, 1, 1, 3) space (see the basic constructor below). Singularities and the set of (-2)-curves lying over them are handled by blow-up desingularisation. The only restriction on the base-field is that the characteristic cannot be equal to 2.

The current functionality mainly deals with computation of (-2)-curves coming from lines and conics that split in the double cover (along with those above singular points), the intersection matrix of a given finite collection of curves and blow-up divisors on the surface, and elliptic fibrations of the surface related to appropriate (-2)-curve configurations. We hope to expand this functionality in a number of directions in future releases.

Creation Functions

Currently, there is no special surface subtype for degree 2 K3 surfaces, but we construct them in a standard form (in weighted P(1, 1, 1, 3) ambients) which the intrinsics in this section work with. The main constructor below takes a homogeneous degree 6 polynomial f in 3 variables, checks that it gives a reduced plane curve with only simple curve singularities, and returns this standard form for the K3 surface which is the double cover of the plane ramified over f. The singular subscheme of the surface is also filled in.

Note that later intrinsics assume that singularity properties of the surface argument have been computed and cached, so this constructor should always be used to create degree 2 K3 surfaces. The SingularSubscheme intrinsic currently doesn't work directly for these surfaces because of the weighted ambient.

DegreeTwoK3Surface(f) : RngMPolElt -> Srfc
The argument f should be a homogeneous degree 6 polynomial in a 3-variable homogeneous polynomial ring over a field of characteristic ≠2. Returns the surface S, which is a (generally singular) model of the K3 surface that is a double cover of the projective plane ramified over the f=0 curve Cf.

Cf should be a reduced curve with at worst simple curve singularities. This is checked, with an error resulting if the conditions are not satisfied. Simple curve singularities are double and triple points analytically equivalent to particular forms as listed in Thm. 8.1 of Chapter II, [BHPdV04]. They lie in the usual A-D-E families and a curve singularity of a certain type on Cf gives a simple surface singularity of the same type on S (e.g. A2 -> A2) lying over it. Note that Cf does not have to be irreducible. If, for example, it has two components meeting transversely at a point, that point is a simple A1 singularity of Cf (node). Nodes are A1 singularities and simple cusps A2 singularities on a curve.

If f is defined over the base field k then S will be a hypersurface in a weighted projective space with variables x, y, z, w which have weights 1, 1, 1, 3 respectively. The defining polynomial will be f(x, y, z) - w2. S is a normal variety giving the normal double cover of the plane with ramification locus Cf. As mentioned above, this will have simple singularities over singularities of Cf and the actual K3 surface is the desingularisation of S.

The intrinsic also computes and caches the singular subscheme of S, if it is singular, or caches that it is non-singular otherwise, before it is returned.

Strictly speaking, the double cover of the plane ramified over Cf is really only defined as a variety over k up to quadratic twist for a non algebraically-closed base field k. The particular twist constructed is determined by f in choosing the defining polynomial f - w2.

Example AlgSrf_srfc_deg2K3_constr (H123E40)

We construct the Drell-Yan K3 surface, which is related to certain Feynmann integrals arising in high-energy physics (see [BFHN]). The ramification locus for this interesting surface has many singularities which give rise to 14 blow-up (-2)-curves via desingularisation. We will use this example again later to illustrate the various intrinsics.
> R<a,b,c> := PolynomialRing(Rationals(),3);
> f := 4*a*b^2*c*(a+c)^2+(a*(b+c)^2+b*(a+c)^2)*(a*(-b+c)^2+b*(c-a)^2);
> S := DegreeTwoK3Surface(f);
> S; Ambient(S);
Surface over Rational Field defined by
x^4*y^2 + 2*x^3*y^3 + x^2*y^4 + 4*x^3*y^2*z + 2*x^3*y*z^2 - 4*x^2*y^2*z^2 +
2*x*y^3*z^2 + 4*x*y^2*z^3 + x^2*z^4 + 2*x*y*z^4 + y^2*z^4 - w^2
Projective Space of dimension 3 over Rational Field
Variables: x, y, z, w
The grading is:
    1, 1, 1, 3
> MinimalBasis(SingularSubscheme(S));
[
    x*y + x*z,
    w,
    y^2*z + y*z^2,
    x^2*z + y*z^2
]
> HasOnlySimpleSingularities(S : ReturnList := true);
true
[* <(-1 : -1 : 1 : 0), "A", 1>, <(1 : -1 : 1 : 0), "A", 3>,
 <(0 : 0 : 1 : 0), "A", 2>, <(0 : 1 : 0 : 0), "A", 4>,
 <(1 : 0 : 0 : 0), "A", 4> *]

Split Divisors and Intersection Matrices

One of the main aims of the analysis of a K3 surface S is to compute its Neron-Severi group NS(S), its divisor group up to algebraic equivalence. For a K3, this is a finitely-generated, torsion-free abelian group of rank ≤20 (for S in characteristic 0) and algebraic equivalence is the same as rational equivalence or numerical equivalence so NS(S)=Pic(S)=Num(S).

In many cases, NS(S) is generated by (-2)-curves. Apart from the irreducible blow-up divisors over singular points, one way to find (-2)-curves on a degree 2 K3 surface is as the components of the pullbacks of lines and conics in the plane which split in the double covering. This idea was first exploited by Elsenhans and Jahnel and formulated into an algorithm by Dino Festi ([Fes]).

We provide an intrinsic to compute the split lines and also some prototype intrinsics to compute split conics. We hope to add efficient intrinsics to properly compute the split conics for characteristic 0 degree 2 K3 surfaces in subsequent releases. As it stands, we provide an intrinsic to compute split conics when S is defined over a (small) finite field. When applied to reductions mod p for several p, this often provides split conics that can be lifted to Q (see the example). There is also an intrinsic to check whether a given conic splits or not.

It should be stated that these intrinsics tend to find split curves in the high-rank cases (rk(NS(S)) is close to 20) but often return nothing for lower-rank cases, where constructing non-trivial divisor classes is still a hard problem.

These split divisor intrinsics were adapted from code kindly provided by D. Festi.

We also provide an intrinsic that computes the full intersection matrix of the set consisting of the strict transforms of a given collection of effective divisors on S and the irreducible blow-up divisors over singularities of the ramification sextic. This, together with the intrinsics to find split curve divisors, allows the partial, or in some cases complete, computation of NS(S).

TriTangentLines(S) : Srfc -> List
TriTangentLines(F) : RngMPolElt -> List
This computes and returns a list of the full set of lines in the plane that split in the degree 2 K3 surface S. Since this condition is equivalent to the line meeting the ramification sextic with even multiplicity at each intersection point, we refer to these as tri-tangent lines. Some may be defined over a finite extension of the base field k of S, in which case only one of the set of Galois-conjugate lines is returned.

There are two versions, one taking the surface S as argument and the other taking the degree 6 ramification polynomial F, which should lie in a 3-variable polynomial ring. In the first case, the lines are returned as linear forms in the first 3 variables of the coordinate ring of the ambient of S, R, and lie in a base change of R to the field of definition of the line. In the second case, the return values are linear forms in a base change of the parent polynomial ring of F.

SixTangentConicsModp(F) : RngMPolElt -> SeqEnum[RngMPolElt]
This computes the full set of conics that split in a degree 2 K3 surface S defined over a finite field k. Since it is largely intended for usage on the mod p reduction of surfaces defined over Q (or a finite extension of Q), we have included "Modp" in the name and only include a version where the argument is a degree 6 homogeneous polynomial F in 3 variables defining the ramification locus of S as a double cover of the plane. As above, the conics that split are precisely those that intersect this sextic ramification curve with even multiplicity at each intersection point, so we refer to them as six-tangent conics.

As opposed to TriTangentLines, this only computes split conics which are defined over k and not over finite extensions. It uses an iteration through all possible conics, so overall speed of execution decreases very quickly with the size of k. Thus, it should only be used over quite small finite fields.

Note that a quadratic factor of F is not counted as a six tangent conic by this intrinsic, even though it ramifies in the double cover to give a (-2)-curve on S.

The return value is a sequence of homogeneous degree 2 polynomials in the parent polynomial ring of F.

SixTangentConicCheck(S,C) : Srfc, RngMPolElt -> BoolElt
SixTangentConicCheck(F,C) : RngMPolElt, RngMPolElt -> BoolElt
Returns whether a plane conic splits in the degree 2 surface S or not. There are two versions, one taking the surface S as its first argument and the second taking the homogeneous degree 6 ramification polynomial F, which should lie in a 3-variable polynomial ring which MUST have the grevlex ordering.

In either case the second argument is a homogeneous degree 2 polynomial C giving the conic equation. In the first case, it should be a polynomial in the first 3 variables of the coordinate ring of the ambient of S. In the second, it should lie in the same polynomial ring as F.

IntersectionMatrixOnDegree2K3(S, Ds) : Srfc, SeqEnum[Sch] -> Mtrx
    IncludeExCurves: BoolElt            Default: true
Argument S should be a degree 2 K3 surface in standard form and argument Ds a sequence of effective divisors given as subschemes of S. No two of Ds should have an irreducible component in common. This is not checked, nor is whether the D ∈Ds actually form divisors (i.e. have a pure codimension 1 primary decomposition). The expected case is that the divisors are all distinct and irreducible, in which case there is no problem.

Let seq be the sequence of divisors given by appending any irreducible blow-up curves ("exceptional" curves) to the sequence of strict transforms on the desingularised surface of the divisors in Ds. The order in which they are appended is s1 cat s2 cat ... sn, where si is the sequence of exceptional divisors for the i-th desingularisation data object dsds[i] of the desingularisation data list dsds returned by ResolveSingularSurface. The order of blow-up divisors in si is the order in which they are indexed in dsds[i].

The intrinsic returns the #seq-by-#seq intersection matrix for the divisors in seq on the K3 surface.

To get the intersection matrix of the strict transforms without the appended exceptional curves, the IncludeExCurves parameter can be set to false (the default is true).

Example AlgSrf_deg2K3_int_pairings (H123E41)

We construct (-2)-curves on the Drell-Yan surface S via split lines and conics and compute the rank of the subgroup of NS(S) that they generate together with the 14 exceptional curves by using the intersection matrix intrinsic.
> R<a,b,c> := PolynomialRing(Rationals(),3);
> f := 4*a*b^2*c*(a+c)^2+(a*(b+c)^2+b*(a+c)^2)*(a*(-b+c)^2+b*(c-a)^2);
> S := DegreeTwoK3Surface(f);
> lins := TriTangentLines(S);
> lins;
[*
    x - z,
    x,
    y + z,
    y,
    y + alpha1*z,
    z
*]
Find which lines are defined over Q.
> [IsIdentical(Parent(l),CoordinateRing(Ambient(S))) : l in lins];
[ true, true, true, true, false, true ]
> BaseRing(Parent(lins[5]));
Number Field with defining polynomial u^2 - 3*u + 1 over the Rational Field
The fifth line gives two conjugate split lines defined over a quadratic extension of Q (Q(Sqrt(5))) and the others are defined over Q. We ignore the fifth one here, to avoid base extension, and get the (-2)-curves over Q defined by the others.
> spl := [PrimeComponents(Scheme(S,lins[i])) : i in [1,2,3,4,6]];
> assert &and[#ps eq 2 : ps in spl];
> Ls := [s[1] : s in spl];
> Lsd := [s[2] : s in spl];
> Ls;
[
    Scheme over Rational Field defined by
    y^2*z + 2*y*z^2 + z^3 + w,
    x - z,
    Scheme over Rational Field defined by
    y*z^2 + w,
    x,
    Scheme over Rational Field defined by
    x^2*z - z^3 + w,
    y + z,
    Scheme over Rational Field defined by
    x*z^2 + w,
    y,
    Scheme over Rational Field defined by
    x^2*y + x*y^2 + w,
    z
]
> Lsd;
[
    Scheme over Rational Field defined by
    y^2*z + 2*y*z^2 + z^3 - w,
    x - z,
    Scheme over Rational Field defined by
    y*z^2 - w,
    x,
    Scheme over Rational Field defined by
    x^2*z - z^3 - w,
    y + z,
    Scheme over Rational Field defined by
    x*z^2 - w,
    y,
    Scheme over Rational Field defined by
    x^2*y + x*y^2 - w,
    z
]
Now we see if we can find any split conics by searching mod 5 and mod 7.
> Rp<a,b,c> := PolynomialRing(GF(5),3,"grevlex");
> SixTangentConicsModp(Rp!f);
[
    a^2 + a*b + b^2 + a*c + 2*b*c,
    a^2 + 2*a*b + 2*a*c + c^2,
    4*a^2 + 4*a*b + b^2 + 2*a*c + 3*b*c,
    a^2 + b*c,
    a^2 + 2*a*b + 2*a*c + b*c
]
> Rp<a,b,c> := PolynomialRing(GF(7),3,"grevlex");
> SixTangentConicsModp(Rp!f);
[
    a^2 + a*b + b^2 + a*c + 2*b*c,
    a^2 + b*c
]
We suspect that the two mod 7 split conics may be split conics over Q with the natural lifted equations, since they both occur as mod 5 split conics. This is indeed true, as we now check.
> x,y,z,w := Explode([Ambient(S).i : i in [1..4]]);
> Cs := [x^2+y*z, x^2+x*y+y^2+x*z+2*y*z];
> [SixTangentConicCheck(S,C) : C in Cs];
[ true, true ]
> splC := [PrimeComponents(Scheme(S,C)) : C in Cs];
> assert &and[#ps eq 2 : ps in splC];
> LsC := [s[1] : s in splC];
> LsCd := [s[2] : s in splC];
> [MinimalBasis(Z) : Z in LsC];
[
    [
        x^2 + y*z,
        x*y^2 - y^2*z - x*z^2 - y*z^2 - w
    ],
    [
        x^2 + x*y + y^2 + x*z + 2*y*z,
        y^3 + x*y*z + 4*y^2*z + x*z^2 + 3*y*z^2 + w
    ]
]
> [MinimalBasis(Z) : Z in LsCd];
[
    [
        x^2 + y*z,
        x*y^2 - y^2*z - x*z^2 - y*z^2 + w
    ],
    [
        x^2 + x*y + y^2 + x*z + 2*y*z,
        y^3 + x*y*z + 4*y^2*z + x*z^2 + 3*y*z^2 - w
    ]
]
We now get the intersection matrix for the 28 = 10 + 4 + 14 (-2)-curves consisting of the split line and conic divisors and the 14 blow-up curves, all of which are defined over Q.
> Ls cat:= LsC;
> Lsd cat:= LsCd;
> imat := IntersectionMatrixOnDegree2K3(S, Ls cat Lsd);
> imat;
[ -2 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 ]
[ 0 -2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 ]
[ 0 1 -2 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 ]
[ 1 0 0 -2 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 ]
[ 0 0 0 0 -2 0 0 0 0 0 0 1 1 2 0 0 0 0 0 0 1 0 0 0 1 0 0 0 ]
[ 0 0 0 1 0 -2 0 0 0 0 0 1 2 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 ]
[ 1 0 0 1 0 0 -2 0 1 0 0 2 1 3 1 1 0 0 0 1 0 0 0 0 0 0 0 0 ]
[ 0 0 0 0 0 0 0 -2 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ]
[ 0 0 0 0 0 0 1 0 -2 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 ]
[ 0 0 0 0 0 0 0 0 1 -2 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 ]
[ 0 0 0 0 0 0 0 1 0 0 -2 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 ]
[ 0 0 0 0 1 1 2 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 ]
[ 0 0 0 0 1 2 1 0 0 0 1 0 -2 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 ]
[ 0 1 0 0 2 1 3 1 0 0 1 0 0 -2 1 0 1 0 1 0 0 0 0 0 0 0 0 0 ]
[ 0 0 1 0 0 1 1 0 0 1 0 0 1 1 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 ]
[ 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 -2 0 1 0 0 0 0 0 0 0 0 0 0 ]
[ 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 -2 1 0 0 0 0 0 0 0 0 0 0 ]
[ 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 -2 0 0 0 0 0 0 0 0 0 0 ]
[ 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 -2 1 0 0 0 0 0 0 0 0 ]
[ 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 -2 0 0 0 0 0 0 0 0 ]
[ 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -2 0 1 0 0 0 0 0 ]
[ 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 -2 0 1 0 0 0 0 ]
[ 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -2 1 0 0 0 0 ]
[ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 -2 0 0 0 0 ]
[ 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 1 0 ]
[ 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 1 ]
[ 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -2 1 ]
[ 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 -2 ]
> Rank(imat);
18
This shows that the 28 curves generate a subgroup of NS(S) of rank 18. In fact, [BFHN] shows that the rank of the subgroup of NS(S) defined over Q is 18, that its full rank (over bar(Q)) is 19 and that the full NS(S) is generated by the above (-2)-curves along with the divisors of the split line defined over Q(Sqrt(5)) and those of a split conic also defined over Q(Sqrt(5)). The above curves probably do generate the full subgroup defined over Q but I haven't checked this.

Elliptic Fibrations

Elliptic fibrations of K3 surfaces are everywhere defined maps from the surface to P1 such that the general fibre is an irreducible, non-singular genus 1 curve. Sometimes these are referred to as genus 1 fibrations with the elliptic fibration terminology reserved for the stronger condition that there also exists a section of the fibre map <=> the generic genus 1 fibre has a point rational over its base-field. However, we do not distinguish here. When there is a section, uniformly providing a O-point on all fibres, the K3 surface with its fibre map actually gives the minimal (curve) model over P1 of the generic elliptic curve fibre.

Such fibrations are very useful in analysing arithmetic and geometric properties of a K3 surface S and finding multiple inequivalent fibrations can also be important, providing different decompositions of finite index sublattices of the Neron-Severi lattice and leading to automorphisms of S with interesting properties.

We use a method to compute elliptic fibrations based upon having many (-2)-curves on the surface at our disposal and finding configurations of these that give bad fibres of an elliptic fibration. This idea has appeared (in a more theoretical setting) previously in the works of Shioda. It was discovered independently as a computational tool by Michael Harrison.

We refer to the configurations of (-2)-curves that give elliptic fibrations as Kodaira configurations. These are sets of (-2)-curves that intersect in the right way to give a standard non-irreducible elliptic fibration bad fibre, when given the correct multiplicity. Each Kodaira configuration on a K3 surface is the bad fibre of a unique (up to automorphisms of the base P1) elliptic fibration and two Kodaira configurations give the same fibration if and only if they are disjoint (see Section 4 of [BFHN]).

The elliptic fibration intrinsics in this section provide the following functionality. Given the intersection matrix of a collection, Σ, of (-2)-curves on S, there is an intrinsic that computes all of the maximal disjoint sets of Kodaira configurations supported on Σ. For a particular Kodaira configuration, consisting of (-2)-curves that may be either the strict transforms of curves on the singular model of S or irreducible blow-up curves over the simple singularities, there is an intrinsic to explicitly compute the associated elliptic fibration map to P1. Additionally, there is an intrinsic to compute the generic fibre, as a curve over a rational function field k(t) where k is the base field of S, of an elliptic fibration from its map. This intrinsic also computes the associated k(t)-rational points on the generic fibre for a given set of sections of the fibration.

KodairaConfigurations(imat) : Mtrx -> List
    SetVerbose("KodFibs", n):           Maximum: 1
The argument imat should be the intersection matrix of an ordered set Σ of irreducible (-2)-curves on the desingularisation of a degree 2 K3 surface S. Returns a list containing all of the maximal disjoint sets of Kodaira configurations supported on Σ (see the introductory section). The list is in 1-1 correspondence with equivalence classes of elliptic fibrations on S that have at least one bad fibre supported entirely on curves in Σ. The set of Kodaira configurations in the list entry gives all of the bad fibres of the corresponding fibration that are supported on curves in Σ. Here, we say that two elliptic fibration maps to P1 are equivalent if they simply differ by an automorphism of P1 and that two elliptic fibrations are equivalent if the associated equivalence classes of elliptic fibration maps are the same. Equivalent elliptic fibrations clearly have the same set of fibres.

The list entry for a maximal disjoint set of configurations is a sequence of the form [e1, ..., er] where the ei are the configurations given in the form of a pair < s, l > where s is the a sequence of indices of the elements of Σ forming the components of the fibre and l is a label string giving the type of the fibre.

The type labels use the extended Dynkin notation for elliptic bad fibres, except that In is used rather than tilde(An) for multiplicative reduction types. The code cannot distinguish between types III and I2 or IV and I3 (this doesn't matter in practice: the fibres contain each irreducible component to multiplicity 1 either way), and the In label will be used in both cases. The possible type labels are thus In, n ≥2, Dn, n ≥4, and E6, E7, E8, where the Di and Ei types are usually written with a tilde and represent a configuration of (-2)-curves forming an extended Dynkin diagram of the type label in terms of their dual intersection graph. See Ch. V, Sec. 7 of [BHPdV04] for a description of these configurations.

To know what multiplicities of the components of the fibre occur, it is necessary to know which nodes of the corresponding extended Dynkin diagram correspond to which positions in the sequence s. This depends on the type of the configuration.

For an In configuration, whose diagram is a (regular) n-gon, the order of s gives the cyclic order to which the components occur. That is, component s[1] is joined to component s[2], component s[2] to component s[3], ... component s[n - 1] to component s[n] and component s[n] to component s[1].

For an extended Dn configuration, if s=[a1, .., an + 1] then the central axis of the extended Dynkin diagram is a3 - a4 - ... - an - 1 and a1, a2 join onto the a3 node, an and an + 1 join onto the an - 1 node [a3 is the central node when n=4].

For an extended E6 configuration, s=[a1, ..., a7] and in the extended Dynkin diagram, a1 is the central node and a2 - a3, a4 - a5, a6 - a7 are the arms with a2, a4 and a6 meeting a1.

For an extended E7 configuration, s=[a1, ..., a8] and in the extended Dynkin diagram, a1 - a2 - ... - a6 - a7 is the main axis with a8 meeting a4.

For an extended E8 configuration, s=[a1, ..., a9] and in the extended Dynkin diagram, a1 - a2 - ... - a7 - a8 is the main axis with a9 meeting a3.

Example AlgSrf_deg2K3_int_pairings (H123E42)

We continue with the Drell-Yan surface, using the 28 (-2)-curves from the last example as our Σ and the intersection matrix computed there. We find a lot of inequivalent elliptic fibrations.
> SetVerbose("KodFibs",1);
> time confs := KodairaConfigurations(imat);
Getting simple paths...
Time: 2.590
Getting In loops...
Time: 0.610
Getting extended Dn configs...
Time: 1.540
Getting extended E6 configs...
Time: 0.070
Getting extended E7 configs...
Time: 0.070
Getting extended E8 configs...
Time: 0.190
Getting disjoint sets of configurations...
Dealing with 16716 configurations.
Done 1000 sets of configurations
Done 2000 sets of configurations
Done 3000 sets of configurations
Done 4000 sets of configurations
Done 5000 sets of configurations
Done 6000 sets of configurations
Done 7000 sets of configurations
Done 8000 sets of configurations
Done 9000 sets of configurations
Done 10000 sets of configurations
Done 11000 sets of configurations
Done 12000 sets of configurations
Done 13001 sets of configurations
Done 14001 sets of configurations
Done 15001 sets of configurations
Done 16001 sets of configurations
Time: 11.460
> #confs;
16402
We have found 16402 inequivalent elliptic fibrations of S! We examine the configuration data for some of them.
> Max([#e : e in confs]);
3 2022
> // 3 is the maximum number of disjoint Kodaira fibrations in
> // one of the configuration sets.
> // Get the indices in confs of the size 2 and 3 configuration sets
> s2 := [i : i in [1..#confs] | #(confs[i]) eq 2];
> #s2;
282
> s3 := [i : i in [1..#confs] | #(confs[i]) eq 3];
> #s3;
16
> confs[s3[3]];
[
    <[ 16, 18, 1, 4, 27, 28, 26, 3 ], "I8">,
    <[ 10, 20, 9, 24, 22, 23 ], "D5">,
    <[ 5, 14 ], "I2">
]
The elliptic fibration corresponding to the above configuration has 3 bad fibres which are supported solely on curves in Σ. They are multiplicative reduction fibres of type I8 and I2 and an additive reduction fibre of extended Dynkin type tilde(D5) (I * 1 in the alternative bad fibre notation). Using the order of indexing of our (-2)-curves and the notation Ei, j for the jth blow-up divisor of the ith desingularisation data object dsds[i] of S, we see that the additive bad fibre as a divisor on the desingularisation of S is L3d + E3, 2 + E4, 2 + E4, 3 + 2 * L2d + 2 * E4, 4 where Lid is the strict transform of the curve Lsd[i].

The 1968th elliptic fibration will be constructed in the next example. It's configuration data contains two bad fibres supported on Σ: an I10 and an I2 fibre.

> confs[1968];
[
    <[ 25, 10, 9, 24, 23, 2, 3, 26, 28, 27 ], "I10">,
    <[ 6, 13 ], "I2">
]
EllipticFibrationRRSpaceDeg2K3(S,divlst,exdivlst) : Srfc, SeqEnum, SeqEnum -> SeqEnum[RngMPolElt],RngMPolElt
The first argument S should be a degree 2 K3 surface in standard form. Given a Kodaira fibre F on the desingularisation X of S, the intrinsic returns the 2-dimensional Riemann-Roch space of F, H0(X, L(F)), as a sequence B and denominator d. Here B=[f1, f2] where f1, f2, d are all weighted homogeneous polynomials of the same degree in the coordinate ring of the ambient of S, and a basis for the R-R space is given by the two rational functions on S, f1/d and f2/d.

The return is in this form for convenience because the divisor map from S -> P1 of |F|, which is the elliptic fibration map with F as a bad fibre, is then just defined by B.

The components of F may be strict transforms of irreducible curves on S or irreducible blow-up divisors over the singular points of S. F is specified by the second and third argument as follows. Assume that, as a divisor on X, it is given by the sum m1 * D1 + ... + mr * Dr + n1 * E1 + ... + ns * Es, where the Di are the irreducible components of F that are strict transforms of curves on S, the Ei are irreducible blow-up divisors and the mi, nj are positive multiplicities.

The second argument divlst specifies the (always non-empty) Di part of the divisor sum. It should be a sequence of (Sch,RngIntElt) 2-element lists where the ith 2-element list is [ * Zi, mi * ] where Zi is the subscheme of S whose strict transform is Di.

The third argument exdivlst specifies the Ei part of the sum. It should be a sequence of (Sch, RngIntElt, RngIntElt) 3-element lists. For the ni * Ei term of the sum, if Ei is the jth irreducible divisor over the singularity represented by desingularisation data object dsd, the corresponding 3-element list would be [ * dsd, j, ni * ]. If there are no Ei, this sequence should just be the empty sequence.

A concrete example of using this intrinsic is given below.

The computation uses a simplified version of the standard Magma Riemann-Roch functionality applied to an ordinary projective embedding of S into ordinary P10, with simplifications coming from the fact that this is a projectively-normal embedding. The blow-up divisor part is handled by the linear system divisor restriction intrinsic.

EllipticGeneralFibreDeg2K3(S,B,secs) : Srfc, SeqEnum[RngMPolElt], SeqEnum[Sch] -> Crv,SeqEnum,SeqEnum
    varname: MonStgElt                  Default: "t"
As usual, the first argument S should be a degree 2 K3 surface in standard form. The second argument B should be a sequence of two weighted-homogeneous polynomials of the same degree in the coordinate ring of the ambient of S that define an elliptic fibration map on S. E.g., as returned by the previous intrinsic. The third argument secs should be a (possibly empty) sequence of irreducible subschemes of S whose strict transforms to the desingularisation of S give sections of this fibration. If F is any fibre of the elliptic fibration (e.g. a Kodaira fibre defining it), then the condition that the strict transform tilde(D) of irreducible D ⊂S is a section is precisely that the intersection number tilde(D).F = 1. This is easily checked with the intersection matrix intrinsic.

If the base field of S is k, the intrinsic returns a (generally singular) curve C over rational function field k(t) that is a birational model of the smooth genus 1 generic fibre of the fibration map. Technically speaking, this is the scheme-theoretic pullback of the fibration S -> P1 under the generic point inclusion map Spec(k(t)) -> P1. t corresponds to the rational function B[1]/B[2] on S. C will usually be returned as a plane curve.

A second return value gives the sequence of k(t)-rational points on C corresponding to the sections in secs.

The third return value is a sequence of 4 rational functions on the ambient of C that give the substitutions for x, y, z, w (the coordinate variables on the ambient of S) that transform S generically into C.

By default, the variable generator t of the rational function field k(t) over which C is defined, will be labelled "t". To change this, the varname parameter can be used to specify the string used for the variable labelling.

Example AlgSrf_deg2K3-ell-fib-ex (H123E43)

We construct one of the elliptic fibrations of the Drell-Yan surface coming from the configurations found in the last example, compute its generic fibre, and use a point on this fibre coming from a section to transform to a Weierstrass elliptic curve model over Q(t).

The fibration we will construct is the one corresponding to the 1968th configuration found, confs[1968]. It has two bad fibres supported on our set of 28 curves, an I2 and an I10 fibre. Although it is simpler to construct the fibration from the I2 fibre, we will use the I10 fibre, which contains blow-up divisors, to better illustrate the Kodaira fibre divisor specification.

In the notation of the last example, the I10 Kodaira fibre is L2 + L2d + L3 + L3d + E4, 3 + E4, 4 + E5, 1 + E5, 2 + E5, 3 + E5, 4

We also note that L4, L4d, L5, L5d each give sections of the fibration as is easily deduced from the intersection matrix imat.

> dsds := ResolveSingularSurface(S); // get the desing data objects
> B,F := EllipticFibrationRRSpaceDeg2K3(S,[ [*Ls[2],1*],[*Lsd[2],1*],
> [*Ls[3],1*], [*Lsd[3],1*] ], [ [*dsds[4],j,1*] : j in [3,4] ] cat
> [ [*dsds[5],j,1*] : j in [1..4] ]);
> B; F;
[
    x^2 + y*z,
    x*y + x*z
]
x*y + x*z
Now we get the generic fibre of the fibration and the points on it corresponding to the sections listed above.
> C,pts,subst := EllipticGeneralFibreDeg2K3(S,B,[Ls[4],Lsd[4],
>   Ls[5],Lsd[5]]);
> C; Ambient(C);
Curve over Univariate rational function field over Rational Field defined by
(t^2 + 2*t + 1)/t^4*a^4 + (-2*t^3 - 2*t^2 - 6*t - 2)/t^4*a^3*c + (t^4 + 8*t^2 +
    4*t + 3)/t^4*a^2*c^2 + (-2*t^3 - 2*t^2 - 6*t - 2)/t^4*a*c^3 + (t^2 + 2*t +
    1)/t^4*c^4 - b^2
Projective Space of dimension 2 over Univariate rational function field over
Rational Field
Variables: t
Variables: a, b, c
The grading is:
    1, 2, 1
> pts;
[ (t : (-t^2 + 1)/t^2 : 1), (t : (t^2 - 1)/t^2 : 1), (1 : (-t - 1)/t^2 : 0),
(1 : (t + 1)/t^2 : 0) ]
> subst;
[
    $.1,
    (1/t*$.1^2 - $.1*$.3)/($.1 - 1/t*$.3),
    $.3,
    ($.1^3*$.2 - $.1*$.2*$.3^2)/($.1^2 - 2/t*$.1*$.3 + 1/t^2*$.3^2)
]
C is given as a y2= quartic curve in P(1, 2, 1) over Q(t). We transform to a Weierstrass form using pts[4] as a base point
> E,Emp := EllipticCurve(C,pts[4]);
> E;
Elliptic Curve defined by y^2 + (-2*t^7 - 2*t^6 - 6*t^5 - 2*t^4)/(t^4 + 6*t^3 +
    4*t^2 + 2*t + 1)*x*y + (-4*t^19 - 20*t^18 - 52*t^17 - 92*t^16 - 108*t^15 -
    76*t^14 - 28*t^13 - 4*t^12)/(t^12 + 18*t^11 + 120*t^10 + 366*t^9 + 555*t^8 +
    588*t^7 + 496*t^6 + 324*t^5 + 171*t^4 + 74*t^3 + 24*t^2 + 6*t + 1)*y = x^3 +
2*t^8/(t^4 + 6*t^3 + 4*t^2 + 2*t + 1)*x^2 + (-4*t^24 - 32*t^23 - 112*t^22 -
    224*t^21 - 280*t^20 - 224*t^19 - 112*t^18 - 32*t^17 - 4*t^16)/(t^16 +
    24*t^15 + 232*t^14 + 1160*t^13 + 3268*t^12 + 5640*t^11 + 7096*t^10 +
    7128*t^9 + 5830*t^8 + 3976*t^7 + 2296*t^6 + 1112*t^5 + 452*t^4 + 152*t^3 +
    40*t^2 + 8*t + 1)*x + (-8*t^32 - 64*t^31 - 224*t^30 - 448*t^29 - 560*t^28 -
    448*t^27 - 224*t^26 - 64*t^25 - 8*t^24)/(t^20 + 30*t^19 + 380*t^18 +
    2650*t^17 + 11205*t^16 + 30376*t^15 + 56560*t^14 + 79960*t^13 + 91530*t^12 +
    87300*t^11 + 70824*t^10 + 49580*t^9 + 30090*t^8 + 15880*t^7 + 7280*t^6 +
    2872*t^5 + 965*t^4 + 270*t^3 + 60*t^2 + 10*t + 1) over Univariate rational
function field over Rational Field
We can now find minimising transformations to greatly simplify this Weierstrass equation but we will finish here.
V2.28, 13 July 2023