Here is the file MukaiModelOfM7.m2.txt used in the session below.
Macaulay2, version 1.20
with packages: ConwayPolynomials, Elimination, IntegralClosure,
InverseSystems, Isomorphism, LLLBases, MinimalPrimes,
OnlineLookup, PrimaryDecomposition, ReesAlgebra,
Saturation, TangentCone
i1 : load "../MukaiModelOfM7.m2";
i2 : R=QQ[y_0..y_6];
i3 : f={3*y_5^2-4*y_4*y_6+y_3*y_0, 2*y_4*y_5-3*y_3*y_6+y_2*y_0, 5*y_3*y_5-8*y_2*y_6+3*y_1*y_0, 3*y_2*y_5-5*y_1*y_6+2*y_0*y_0, 5*y_4^2-9*y_2*y_6+4*y_1*y_0, y_3*y_4-2*y_1*y_6+y_0*y_0, 5*y_2*y_4-8*y_1*y_5+3*y_0*y_6, 5*y_3^2-9*y_1*y_5+4*y_0*y_6, 2*y_2*y_3-3*y_1*y_4+y_0*y_5, 3*y_2^2-4*y_1*y_3+y_0*y_4};
i4 : quadraticFormOnI2(f)
rank ker(Sym2I2 -> I4) = 1
2 9 2 3 1 3
o4 = - q + -q q - 5q - --q q + -q q - -q q + q q
3 2 3 5 5 10 2 6 5 4 7 2 1 8 0 9
o4 : QQ[q ..q ]
0 9
Next, we change the basis to obtain the desired quadratic form.
i5 : g={-10*f_0, 15*f_1, 3*f_2, -2*f_4, 5*(-2*f_3+5*f_5), f_9, f_8, f_6, f_7, -f_3+2*f_5};
i6 : Q = (v) -> (
sum apply(5, i -> v_i*v_(i+5))
);
i7 : assert(Q(g)==0)
i8 : I2 = g
2
o8 = {- 10y y - 30y + 40y y , 15y y + 30y y - 45y y , 9y y +
0 3 5 4 6 0 2 4 5 3 6 0 1
-----------------------------------------------------------------
2 2
15y y - 24y y , - 8y y - 10y + 18y y , 5y + 25y y - 30y y ,
3 5 2 6 0 1 4 2 6 0 3 4 2 5
-----------------------------------------------------------------
2
3y - 4y y + y y , 2y y - 3y y + y y , 5y y - 8y y + 3y y ,
2 1 3 0 4 2 3 1 4 0 5 2 4 1 5 0 6
-----------------------------------------------------------------
2
5y - 9y y + 4y y , 2y y - 3y y + y y }
3 1 5 0 6 3 4 2 5 1 6
o8 : List
Next, we choose eight smooth points on \(C_{cusp}\) and check that
Mukai's conventions are satisfied.
i9 : phi = (s,t,u,v) -> {7*s^6*u, 6*s^5*t*u+s^6*v, 5*s^4*t^2*u+2*s^5*t*v, 4*s^3*t^3*u+3*s^4*t^2*v, 3*s^2*t^4*u+4*s^3*t^3*v, 2*s*t^5*u+5*s^2*t^4*v, t^6*u+6*s*t^5*v};
i10 : points = {{-1,1,1,1},{1,2,64,1},{2,1,1,64},{1,3,729,1},{3,1,1,729},{-2,1,1,64},{1,-2,64,1},{1,-3,729,1}};
i11 : points = apply(points, p -> phi(p_0,p_1,p_2,p_3));
i12 : points = apply(points, p -> 1/1*p);
i13 : assert( all(I2, f -> all(points, p -> eval(p,f)==0)))
i14 : U0 = matrix {
{1/1,0,0,0,0, 0,0,0,0,0},
{0,1,0,0,0, 0,0,0,0,0},
{0,0,1,0,0, 0,0,0,0,0},
{0,0,0,1,0, 0,0,0,0,0},
{0,0,0,0,1, 0,0,0,0,0}
};
5 10
o14 : Matrix QQ <--- QQ
i15 : Uinfty = matrix {
{0/1,0,0,0,0, 1,0,0,0,0},
{0,0,0,0,0, 0,1,0,0,0},
{0,0,0,0,0, 0,0,1,0,0},
{0,0,0,0,0, 0,0,0,1,0},
{0,0,0,0,0, 0,0,0,0,1}
};
5 10
o15 : Matrix QQ <--- QQ
i16 : assert(even intersectionDimension(Wpperp(points_0,I2),Uinfty))
Next, we compute the half spinors of these points, and the hyperplanes
that vanish on them, and an echelonized basis of their rowspace.
i18 : Spinors = matrix apply(points, k -> spinorOfPoint(k,I2,U0,Uinfty,Q))
o18 = | 1 3/35 0 -1/14 -1/35 1/21 0 3/35
| 1 321/560 0 515/224 97/70 -97/42 0 261/140
| 1 261/140 0 97/28 103/112 -515/336 0 321/560
| 1 10937/8505 0 2917/378 1313/189 -6565/567 0 4379/315
| 1 4379/315 0 6565/378 2917/945 -2917/567 0 10937/8505
| 1 -251/140 0 95/28 -509/560 509/336 0 319/560
| 1 319/560 0 -509/224 19/14 -95/42 0 -251/140
| 1 10933/8505 0 -2915/378 6557/945 -6557/567 0 -4369/315
----------------------------------------------------------------
3/7 -3/7 -4/7 1/30 -4/105
261/28 201/35 268/35 1/30 769/8400
321/112 2307/2240 769/560 1/30 268/525
4379/63 2193/35 2924/35 1/30 52492/382725
10937/1701 13123/8505 52492/25515 1/30 2924/525
319/112 -2301/2240 -767/560 1/30 244/525
-251/28 183/35 244/35 1/30 -767/8400
-4369/63 2181/35 2908/35 1/30 -52484/382725
----------------------------------------------------------------
-3/70 -3/70 1/105 |
2307/22400 -321/1120 -103/336 |
201/350 -261/280 -97/210 |
13123/85050 -10937/17010 -2917/2835 |
2193/350 -4379/630 -1313/567 |
183/350 251/280 -19/42 |
-2301/22400 -319/1120 509/1680 |
-13121/85050 -10933/17010 583/567 |
8 16
o18 : Matrix QQ <--- QQ
i19 : KerSpinors = transpose gens ker(Spinors)
o19 = | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| 0 0 0 0 5/3 1 0 0 0 0 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 0 0 0 0 -5 1 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 -4/3 1 0 0 0 0 0 |
| -1/30 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 0 0 -9/8 1 0 0 |
| 0 1/2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |
| 0 0 0 2/15 0 0 0 0 0 0 0 0 0 0 0 1 |
9 16
o19 : Matrix QQ <--- QQ
i20 : transpose gens ker KerSpinors
o20 = | 0 0 0 0 -3/5 1 0 0 0 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 1/5 1 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 3/4 1 0 0 0 0 0 |
| 30 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 0 0 8/9 1 0 0 |
| 0 -2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 |
| 0 0 0 -15/2 0 0 0 0 0 0 0 0 0 0 0 1 |
7 16
o20 : Matrix QQ <--- QQ