next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
PrymCanonicalCurves :: addANodeAndExtend2Torsion

addANodeAndExtend2Torsion -- add a node to a canonical curve and extend a 2-Torsion divisor to the new curve

Synopsis

Description

Given a canonical possibly nodal curve C and a two Torsion divisor D0-D1, we compute a curve C’ obtained by identifying two points p, q on C to a node, and a 2-Torsion line bundle whose pullback under C-> C’ is the given 2 Torsion line bundle OC(D0-D1). Note that C’ together E0-E1 is defined over the given ground field if and only if the values of the rational function f with (f)=2D0-2D1 at the two points p, q differ by a square, i.e. f(p)/f(q) ∈kk2. We use a probabilistic approach to over come this difficulty, by trying several pairs of points if necessary.
i1 : kk=ZZ/10007;R=kk[x_0..x_7];
i3 : time (J,D,Pts)=getCanonicalCurveOfGenus8With2Torsion(R,20);
     -- used 1.24501 seconds
i4 : betti J, dim J, codim J, degree J, genus J, apply(D,d->degree d)

             0  1
o4 = (total: 1 15, 2, 6, 14, 8, {8, 8})
          0: 1  .
          1: . 15

o4 : Sequence
i5 : time (I,D,Pts)=addANodeAndExtend2Torsion(J,D,Pts);
     -- used 8.94068 seconds
i6 : betti I, dim I, codim I, degree I, genus I, apply(D,e->degree e)

             0  1
o6 = (total: 1 21, 2, 7, 16, 9, {22, 22})
          0: 1  .
          1: . 21

o6 : Sequence
i7 : (E,Pts1)=simplifyDivisor(I,D,Pts);
i8 : apply(E,e->degree e)

o8 = {9, 9}

o8 : List
i9 : #Pts,#Pts1

o9 = (18, 5)

o9 : Sequence
i10 : betti(J=prymCanonicalEmbedding(I,E)), dim J,codim J,degree J,genus J

              0  1
o10 = (total: 1 12, 2, 6, 16, 9)
           0: 1  .
           1: . 12

o10 : Sequence
The key idea of the algoritm to compute a rational function g such that f(p)/f(q)*(g(p)/g(q))2 = 1. The function g can be obtained from any pencil of homogeneous forms via a suitable fractional transformation. We compute suitable linear forms g0,g1 such that g=g0/g1 has the desired property and replace Di by Ei+gi.C for i=0,1. The curve C’ is simply the image of C under |KC+p+q|. The divisor representative E0,E1 of the divisor class E0-E1 can be simplified by imposing common base points in both |Ei|. This can be carried out with the function "simplifyDivisor", but it is not in the current routine "addANodeAndExtend2Torsion".

Ways to use addANodeAndExtend2Torsion :