-- The following routine checks the computations needed for the proof of Lemma 4.1. restart kk = ZZ/32003 -- First we set up the cubic surface S1 as the blow-up of six points in the projective plane. -- We set up the projective plane PP2 = kk[X,Y,Z] -- We choose 6 points on the projective plane -- p = ideal(random(PP2^{0},PP2^{-1,-1})) p1 = ideal(-4060*X-2622*Y+4564*Z,9704*X-5559*Y-4122*Z) p2 = ideal(-13332*X-11051*Y+10804*Z,12577*X-1718*Y+14786*Z) p3 = ideal(-2834*X-6497*Y+13881*Z,467*X+4278*Y-5212*Z) p4 = ideal(-3749*X-13560*Y+7175*Z,2713*X+2705*Y+1354*Z) p5 = ideal(5112*X+12564*Y+5538*Z,-5137*X+7128*Y-5416*Z) p6 = ideal(-13525*X+3047*Y+542*Z,-15361*X+10416*Y+7137*Z) -- We compute the cubics giving the map to PP3, together with a random linear change of coordinates PP3 = kk[U_0,U_1,U_2,U_3] --map1 = map(PP2,PP3,super basis(3,module intersect(p1,p2,p3,p4,p5,p6)))*map(PP3,PP3,random(PP3^{1},PP3^{0,0,0,0})) map1 = map(PP2,PP3,{-12576*X^3+8426*X^2*Y+2489*X*Y^2-1557*Y^3-13099*X^2*Z-4931* X*Y*Z+5611*Y^2*Z+6941*X*Z^2+14175*Y*Z^2+8932*Z^3, 6400*X^3-15990*X^2*Y+9981*X*Y^2+1776*Y^3+7479*X^2*Z-8308*X*Y*Z+1295*Y^2* Z-7236*X*Z^2+14021*Y*Z^2+13258*Z^3, 8492*X^3-11709*X^2*Y-7449*X*Y^2-2588*Y^3-13589*X^2*Z-3261*X*Y*Z-4835*Y^2 *Z+9059*X*Z^2+4867*Y*Z^2+4184*Z^3, 4266*X^3-15832*X^2*Y+8485*X*Y^2-11150*Y^3+8685*X^2*Z+9861*X*Y*Z-15783*Y^ 2*Z-14217*X*Z^2-15352*Y*Z^2+10127*Z^3}) -- S1 is the smooth cubic surface corresponding to the 6 points above S1 = ker map1 saturate ideal singularLocus S1 S2 = ideal(U_0*U_3-U_1*U_2) saturate ideal singularLocus (S2+S1) -------------------------------------------------------------------------------------- -- We set up the smooth quadric surface S2 P1P1 = kk[V_0,V_1,W_0,W_1,Degrees=>{{1,0},{1,0},{0,1},{0,1}}] map2 = map(P1P1,PP3,{V_0*W_0,V_0*W_1,V_1*W_0,V_1*W_1}) S2 = ker map2 -- We check that S2 and S3 intersect transversally along a smooth curve B B = S1+S2 saturate ideal singularLocus B --------------------------------------------------------------------------------------- -- Now we compute a smooth curve on P1xP1 of class (3,1) together with rational 8 points contained in it. This curve corresponds to the rational curve C2 of degree 4 contained in S2. --C2 = ideal((super basis({3,1},module P1P1))*(random(P1P1^{8:{0,0}},P1P1^{{0,0}}))) C2 = ideal(-12854*V_0^3*W_0+10488*V_0^2*V_1*W_0+1309*V_0*V_1^2*W_0+13516*V_1^3*W_0-3348*V_0^3*W_1+13812*V_0^2*V_1*W_1-1013*V_0*V_1^2*W_1+3242*V_1^3*W_1) C2space = ker (map(P1P1/C2,P1P1)*map2) saturate ideal singularLocus C2space (genus C2space==0,degree C2space==4) -- We compute the intersection of C2 and the cubic S1 twelvepointsspace = saturate (C2space+S1) degree twelvepointsspace -- Now we need to find four distinct points amongst these apply(primaryDecomposition twelvepointsspace,I->degree I) fourpointsspace = intersect((primaryDecomposition twelvepointsspace)_0,(primaryDecomposition twelvepointsspace)_1,(primaryDecomposition twelvepointsspace)_2,(primaryDecomposition twelvepointsspace)_3) degree fourpointsspace -- And we compute the residual eight points eightpointsspace = saturate(twelvepointsspace,fourpointsspace) -- Now I pull back the eight points to P2 eightpointsP2 = saturate(map1(eightpointsspace),intersect(p1^2,p2^2,p3^2,p4^2,p5^2,p6^2)) degree eightpointsP2 -- I compute a curve of class 13L-5E on the blown-up P2 passing through these eight points. This curve will correspond to a smooth curve C1 of genus 6 and degree 9 contained in the cubic S1. --C1 = ideal(super(basis(13,intersect(p1^5,p2^5,p3^5,p4^5,p5^5,p6^5,eightpointsP2)))*random(PP2^{7:0},PP2^{0})) C1 = ideal(11197*X^13-7134*X^12*Y-15674*X^11*Y^2-9774*X^10*Y^3-11217*X^9*Y^4- 15465*X^8*Y^5+10248*X^7*Y^6-6374*X^6*Y^7-14403*X^5*Y^8+8868*X^4*Y^9-180* X^3*Y^10-7766*X^2*Y^11-12474*X*Y^12+2181*Y^13-13591*X^12*Z+13563*X^11*Y* Z+3632*X^10*Y^2*Z-4241*X^9*Y^3*Z-4118*X^8*Y^4*Z+13711*X^7*Y^5*Z+6170*X^6 *Y^6*Z+842*X^5*Y^7*Z-11916*X^4*Y^8*Z+9090*X^3*Y^9*Z+7088*X^2*Y^10*Z-904* X*Y^11*Z+10931*Y^12*Z-11226*X^11*Z^2-7305*X^10*Y*Z^2-11569*X^9*Y^2*Z^2+ 8358*X^8*Y^3*Z^2-13295*X^7*Y^4*Z^2+4402*X^6*Y^5*Z^2-6360*X^5*Y^6*Z^2- 11223*X^4*Y^7*Z^2+5216*X^3*Y^8*Z^2-10999*X^2*Y^9*Z^2-11633*X*Y^10*Z^2- 10186*Y^11*Z^2+11921*X^10*Z^3+1841*X^9*Y*Z^3-11480*X^8*Y^2*Z^3-11490*X^7 *Y^3*Z^3+12832*X^6*Y^4*Z^3-8696*X^5*Y^5*Z^3+3097*X^4*Y^6*Z^3+6076*X^3*Y^ 7*Z^3-2778*X^2*Y^8*Z^3+209*X*Y^9*Z^3-11632*Y^10*Z^3+535*X^9*Z^4-8434*X^8 *Y*Z^4-6320*X^7*Y^2*Z^4+9937*X^6*Y^3*Z^4-1638*X^5*Y^4*Z^4+14910*X^4*Y^5* Z^4+1871*X^3*Y^6*Z^4+5878*X^2*Y^7*Z^4-3966*X*Y^8*Z^4+13563*Y^9*Z^4+14255 *X^8*Z^5+11735*X^7*Y*Z^5+1412*X^6*Y^2*Z^5-980*X^5*Y^3*Z^5+9497*X^4*Y^4*Z ^5-4824*X^3*Y^5*Z^5-11207*X^2*Y^6*Z^5-15595*X*Y^7*Z^5-6855*Y^8*Z^5+726*X ^7*Z^6+7258*X^6*Y*Z^6+9586*X^5*Y^2*Z^6+9337*X^4*Y^3*Z^6+14361*X^3*Y^4*Z^ 6-278*X^2*Y^5*Z^6-4464*X*Y^6*Z^6+2346*Y^7*Z^6-1080*X^6*Z^7+4395*X^5*Y*Z^ 7+10139*X^4*Y^2*Z^7-7915*X^3*Y^3*Z^7-4645*X^2*Y^4*Z^7-10083*X*Y^5*Z^7+ 7048*Y^6*Z^7+10207*X^5*Z^8+9331*X^4*Y*Z^8-9628*X^3*Y^2*Z^8-5065*X^2*Y^3* Z^8-4325*X*Y^4*Z^8-14457*Y^5*Z^8-2511*X^4*Z^9-15690*X^3*Y*Z^9+7308*X^2*Y ^2*Z^9-8902*X*Y^3*Z^9+6434*Y^4*Z^9-49*X^3*Z^10-5805*X^2*Y*Z^10+856*X*Y^2 *Z^10-12098*Y^3*Z^10-9721*X^2*Z^11-6862*X*Y*Z^11-2069*Y^2*Z^11+11422*X*Z ^12+2403*Y*Z^12-14257*Z^13) C1space = ker (map(PP2/C1,PP2)*map1) saturate ideal singularLocus C1space (genus C1space == 6, degree C1space == 9) -- Our reducible curve is the union of C1 and C2 Co = intersect(C2space,C1space) (genus Co == 13, degree Co == 13) -- We check that the space of quintics containing Co has dimension 3 and that a general one is smooth. super basis(5,module Co) saturate ideal singularLocus ideal((super basis(5,module Co))*random(PP3^3,PP3^1)) --------------------------------------------------------------------------------------------------------------- -- Now we compute the 10 residual points of intersection of C1 with B tenpointsP2 = saturate(C1+map1(B),intersect(eightpointsP2,p1,p2,p3,p4,p5,p6)) degree tenpointsP2 -- We check that the linear system of curves of class 13L-5E passing through these 10 points has the expected dimension, and that the restriction map to H^0(B,O_B(W)) is injective, hence an isomorphism. super basis(13,intersect(p1^5,p2^5,p3^5,p4^5,p5^5,p6^5,tenpointsP2)) super basis(7,intersect(p1^3,p2^3,p3^3,p4^3,p5^3,p6^3)) -- Now we should also compute the 4 residual points of intersection of C2 with B fourpointsP1P1 = saturate(saturate(map2(fourpointsspace),ideal(V_0,V_1)),ideal(W_0,W_1)) degree fourpointsP1P1 -- We check that the linear system of curves of class (3,1) passing through these 4 points has the expected dimension, and that the restriction map to H^0(B,O_B(W)) is injective. systemP1P1 = super basis({3,1},fourpointsP1P1) super basis({0,-2},P1P1) -- We look at the linear system that this cuts on B and we check the base points in addition to the four points BP1P1 = saturate(saturate(map2(B),ideal(V_0,V_1)),ideal(W_0,W_1)) d0 = saturate(saturate((ideal systemP1P1_(0,0))+BP1P1,ideal(V_0,V_1)),ideal(W_0,W_1)) d1 = saturate(saturate((ideal systemP1P1_(0,1))+BP1P1,ideal(V_0,V_1)),ideal(W_0,W_1)) d2 = saturate(saturate((ideal systemP1P1_(0,2))+BP1P1,ideal(V_0,V_1)),ideal(W_0,W_1)) d3 = saturate(saturate((ideal systemP1P1_(0,3))+BP1P1,ideal(V_0,V_1)),ideal(W_0,W_1)) -- We look at the corresponding divisors on the space curve B. I take out the four points. d0space = saturate(ker (map(P1P1/d0,P1P1)*map2),fourpointsspace) d1space = saturate(ker (map(P1P1/d1,P1P1)*map2),fourpointsspace) d2space = saturate(ker (map(P1P1/d2,P1P1)*map2),fourpointsspace) d3space = saturate(ker (map(P1P1/d3,P1P1)*map2),fourpointsspace) -- Now we look at the corresponding divisors on P2 d0P2 = saturate(map1(d0space),intersect(p1^2,p2^2,p3^2,p4^2,p5^2,p6^2)) degree oo d1P2 = saturate(map1(d1space),intersect(p1^2,p2^2,p3^2,p4^2,p5^2,p6^2)) degree oo d2P2 = saturate(map1(d2space),intersect(p1^2,p2^2,p3^2,p4^2,p5^2,p6^2)) degree oo d3P2 = saturate(map1(d3space),intersect(p1^2,p2^2,p3^2,p4^2,p5^2,p6^2)) degree oo -- These should be divisors in the linear system on B given by O_B(C3-10points). We should find the elements in H^0(S_3,O(C3)\otimes I_{10points}) that go there. -- To do so, we first add the 10 points. d0P2 = intersect(d0P2,tenpointsP2) degree oo d1P2 = intersect(d1P2,tenpointsP2) degree oo d2P2 = intersect(d2P2,tenpointsP2) degree oo d3P2 = intersect(d3P2,tenpointsP2) degree oo -- Now we can finally compute the corresponding elements in H^0(S3,O(C3)\otimes I_{10points}) F0 = (super basis(13,intersect(p1^5,p2^5,p3^5,p4^5,p5^5,p6^5,d0P2)))_(0,0) F1 = (super basis(13,intersect(p1^5,p2^5,p3^5,p4^5,p5^5,p6^5,d1P2)))_(0,0) F2 = (super basis(13,intersect(p1^5,p2^5,p3^5,p4^5,p5^5,p6^5,d2P2)))_(0,0) F3 = (super basis(13,intersect(p1^5,p2^5,p3^5,p4^5,p5^5,p6^5,d3P2)))_(0,0) systemP2 = matrix{{F0,F1,F2,F3}} ----------------------------------------------------------------------------------- -- Now we can take a random pencil inside this vector space and check that all the curves have at worst nodal singularities. -- pencilS1 = systemP2*random(kk^4,kk^2) -- G0 = pencilS1_(0,0) -- G1 = pencilS1_(0,1) G0 = -10092*X^13+13336*X^12*Y-9599*X^11*Y^2-1703*X^10*Y^3-454*X^9*Y^4-8902*X^8*Y^5-14229*X^7*Y^6+7573*X^6*Y^7-118*X^5*Y^8-8212*X^4*Y^9-13076*X^3*Y^10+9242*X^2*Y^11-5500*X*Y^12-4230*Y^13-12643*X^12*Z+3283*X^11*Y*Z+11577*X^10*Y^2*Z+1252*X^9*Y^3*Z-5001*X^8*Y^4*Z-9459*X^7*Y^5*Z-8146*X^6*Y^6*Z+3095*X^5*Y^7*Z-3122*X^4*Y^8*Z-15476*X^3*Y^9*Z-14016*X^2*Y^10*Z+9773*X*Y^11*Z-1038*Y^12*Z-1005*X^11*Z^2+12125*X^10*Y*Z^2-9476*X^9*Y^2*Z^2-5455*X^8*Y^3*Z^2-9925*X^7*Y^4*Z^2-7556*X^6*Y^5*Z^2+12153*X^5*Y^6*Z^2+4273*X^4*Y^7*Z^2+8379*X^3*Y^8*Z^2-9799*X^2*Y^9*Z^2+7802*X*Y^10*Z^2+10825*Y^11*Z^2+4015*X^10*Z^3+4371*X^9*Y*Z^3-15450*X^8*Y^2*Z^3+5203*X^7*Y^3*Z^3-11402*X^6*Y^4*Z^3+8592*X^5*Y^5*Z^3+3502*X^4*Y^6*Z^3-2281*X^3*Y^7*Z^3+3246*X^2*Y^8*Z^3-5908*X*Y^9*Z^3-10081*Y^10*Z^3+4421*X^9*Z^4+10593*X^8*Y*Z^4+4256*X^7*Y^2*Z^4+6716*X^6*Y^3*Z^4-10601*X^5*Y^4*Z^4-15057*X^4*Y^5*Z^4-15740*X^3*Y^6*Z^4-14418*X^2*Y^7*Z^4+1000*X*Y^8*Z^4-14769*Y^9*Z^4-1526*X^8*Z^5+1980*X^7*Y*Z^5+10500*X^6*Y^2*Z^5+13713*X^5*Y^3*Z^5+11806*X^4*Y^4*Z^5-10291*X^3*Y^5*Z^5-11963*X^2*Y^6*Z^5+3371*X*Y^7*Z^5+13293*Y^8*Z^5+425*X^7*Z^6+11324*X^6*Y*Z^6+13804*X^5*Y^2*Z^6+1104*X^4*Y^3*Z^6+8787*X^3*Y^4*Z^6+14795*X^2*Y^5*Z^6-840*X*Y^6*Z^6-13184*Y^7*Z^6+988*X^6*Z^7+2801*X^5*Y*Z^7+3216*X^4*Y^2*Z^7-13717*X^3*Y^3*Z^7-6349*X^2*Y^4*Z^7-4435*X*Y^5*Z^7+620*Y^6*Z^7+399*X^5*Z^8-10665*X^4*Y*Z^8+14983*X^3*Y^2*Z^8-4737*X^2*Y^3*Z^8+8369*X*Y^4*Z^8+13059*Y^5*Z^8-5609*X^4*Z^9-9494*X^3*Y*Z^9+8529*X^2*Y^2*Z^9-10731*X*Y^3*Z^9+9102*Y^4*Z^9+15179*X^3*Z^10+7508*X^2*Y*Z^10+310*X*Y^2*Z^10-14646*Y^3*Z^10+13127*X^2*Z^11-11000*X*Y*Z^11-343*Y^2*Z^11-4300*X*Z^12+11843*Y*Z^12+4208*Z^13 G1 = 14173*X^13+11092*X^12*Y+7122*X^11*Y^2-11968*X^10*Y^3+13556*X^9*Y^4-1527*X^8*Y^5-8978*X^7*Y^6+5275*X^6*Y^7-306*X^5*Y^8-2651*X^4*Y^9+3573*X^3*Y^10+1709*X^2*Y^11+1967*X*Y^12-6122*Y^13+12992*X^12*Z-14202*X^11*Y*Z+3043*X^10*Y^2*Z-7250*X^9*Y^3*Z+11287*X^8*Y^4*Z+2381*X^7*Y^5*Z+3734*X^6*Y^6*Z+328*X^5*Y^7*Z+2321*X^4*Y^8*Z+8217*X^3*Y^9*Z-5193*X^2*Y^10*Z+10523*X*Y^11*Z-10038*Y^12*Z-6040*X^11*Z^2-13029*X^10*Y*Z^2+14988*X^9*Y^2*Z^2+9741*X^8*Y^3*Z^2+13824*X^7*Y^4*Z^2-15435*X^6*Y^5*Z^2-12786*X^5*Y^6*Z^2+2672*X^4*Y^7*Z^2-8811*X^3*Y^8*Z^2+3720*X^2*Y^9*Z^2-10875*X*Y^10*Z^2+5348*Y^11*Z^2-5799*X^10*Z^3+14228*X^9*Y*Z^3+1278*X^8*Y^2*Z^3+1901*X^7*Y^3*Z^3-2946*X^6*Y^4*Z^3+14177*X^5*Y^5*Z^3-11168*X^4*Y^6*Z^3-15104*X^3*Y^7*Z^3+9647*X^2*Y^8*Z^3+3212*X*Y^9*Z^3+1112*Y^10*Z^3+1709*X^9*Z^4-6719*X^8*Y*Z^4-6505*X^7*Y^2*Z^4-11797*X^6*Y^3*Z^4-8919*X^5*Y^4*Z^4-12619*X^4*Y^5*Z^4+6281*X^3*Y^6*Z^4-9477*X^2*Y^7*Z^4+8516*X*Y^8*Z^4-4960*Y^9*Z^4+4630*X^8*Z^5-11006*X^7*Y*Z^5-6752*X^6*Y^2*Z^5-5290*X^5*Y^3*Z^5+7883*X^4*Y^4*Z^5+14718*X^3*Y^5*Z^5+13914*X^2*Y^6*Z^5+4601*X*Y^7*Z^5-3457*Y^8*Z^5-4916*X^7*Z^6-9588*X^6*Y*Z^6+7166*X^5*Y^2*Z^6-155*X^4*Y^3*Z^6+9727*X^3*Y^4*Z^6-2177*X^2*Y^5*Z^6+14989*X*Y^6*Z^6+1755*Y^7*Z^6-14664*X^6*Z^7+10241*X^5*Y*Z^7+5196*X^4*Y^2*Z^7+13749*X^3*Y^3*Z^7+5792*X^2*Y^4*Z^7+9439*X*Y^5*Z^7-4491*Y^6*Z^7+11789*X^5*Z^8-10846*X^4*Y*Z^8+5400*X^3*Y^2*Z^8-520*X^2*Y^3*Z^8+7692*X*Y^4*Z^8+2776*Y^5*Z^8+14144*X^4*Z^9-14654*X^3*Y*Z^9-10942*X^2*Y^2*Z^9+10931*X*Y^3*Z^9+15883*Y^4*Z^9+15097*X^3*Z^10-9070*X^2*Y*Z^10+4166*X*Y^2*Z^10-9680*Y^3*Z^10-7759*X^2*Z^11-144*X*Y*Z^11+573*Y^2*Z^11+1404*X*Z^12+8323*Y*Z^12+8338*Z^13 gradientG0 = jacobian ideal G0 gradientG1 = jacobian ideal G1 hessianG0 = diff(matrix{{X,Y,Z}}**transpose(matrix{{X,Y,Z}}),G0) hessianG1 = diff(matrix{{X,Y,Z}}**transpose(matrix{{X,Y,Z}}),G0) -- We compute the possible nodes of the curves on the pencil. First only those away from the exceptional divisors use PP2 nodes = primaryDecomposition(saturate(minors(2,(gradientG0|gradientG1)),intersect(p1,p2,p3,p4,p5,p6))) n0 = nodes#0 n1 = nodes#1 n2 = nodes#2 n3 = nodes#3 n4 = nodes#4 n5 = nodes#5 -- Now we check that there are no curves in the pencil that have two distinct nodes away from the exceptional divisors PP2PP2 = kk[X',Y',Z',X'',Y'',Z''] use PP2 mappa'=map(PP2PP2,PP2,{X=>X',Y=>Y',Z=>Z'}) mappa''=map(PP2PP2,PP2,{X=>X'',Y=>Y'',Z=>Z''}) gradientG0'=mappa'(gradientG0) gradientG1'=mappa'(gradientG1) gradientG0''=mappa''(gradientG0) gradientG1''=mappa''(gradientG1) n0' = mappa'(n0) n1' = mappa'(n1) n2' = mappa'(n2) n3' = mappa'(n3) n4' = mappa'(n4) n5' = mappa'(n5) n0'' = mappa''(n0) n1'' = mappa''(n1) n2'' = mappa''(n2) n3'' = mappa''(n3) n4'' = mappa''(n4) n5'' = mappa''(n5) M = (gradientG0'|gradientG1')||(gradientG0''|gradientG1'') I = minors(2,M); diagonal=minors(2,matrix{{X',Y',Z'},{X'',Y'',Z''}}) I00 = ideal(I,n0',n0''); saturate(I00,diagonal) I01 = ideal(I,n0',n1''); saturate(I01,diagonal) I02 = ideal(I,n0',n2''); saturate(I02,diagonal) I03 = ideal(I,n0',n3''); saturate(I03,diagonal) I04 = ideal(I,n0',n4''); saturate(I04,diagonal) I05 = ideal(I,n1',n5''); saturate(I05,diagonal) I11 = ideal(I,n1',n1''); saturate(I11,diagonal) I12 = ideal(I,n1',n2''); saturate(I12,diagonal) I13 = ideal(I,n1',n3''); saturate(I13,diagonal) I14 = ideal(I,n1',n4''); saturate(I14,diagonal) I15 = ideal(I,n1',n5''); saturate(I15,diagonal) I22 = ideal(I,n2',n2''); saturate(I22,diagonal) I23 = ideal(I,n2',n3''); saturate(I23,diagonal) I24 = ideal(I,n2',n4''); saturate(I24,diagonal) I25 = ideal(I,n2',n5''); saturate(I25,diagonal) I33 = ideal(I,n3',n3''); saturate(I33,diagonal) I34 = ideal(I,n3',n4''); saturate(I34,diagonal) I35 = ideal(I,n3',n5''); saturate(I35,diagonal) I44 = ideal(I,n4',n4''); saturate(I44,diagonal) I45 = ideal(I,n4',n5''); time saturate(I45,diagonal) -- We split the computation of the last one in various steps I55 = ideal(I,n5',n5''); time J55=saturate(I55,ideal(X',Y',Z')); time K55=saturate(J55,ideal(X'',Y'',Z'')); saturate(K55,diagonal) -- This proves that there are no curves in the pencil with two nodes away from the exceptional divisors -- Now we prove that there are no curves with nodes along the exceptional divisors -- Here we assume that the point blown up is p=[0,0,1]. A2 = kk[x,y] P1st = kk[s,t] nodallist= new MutableList from {1,2,3,4,5,6} --worsenodallist= new MutableList from {1,2,3,4,5,6} use PP2 dehom = map(A2,PP2,{X=>x,Y=>y,Z=>1}) -- For any one of the points p1,p2,p3,p4,p5,p6 we translate it to [0,0,1] points={p1,p2,p3,p4,p5,p6} for i from 0 to 5 do( use PP2; L1 = (mingens points#i)_(0,0); L2 = (mingens points#i)_(0,1); transl = inverse map(PP2,PP2,{X=>L1,Y=>L2,Z=>Z}); H0 = transl(G0); H1 = transl(G1); h0 = dehom(H0); h1 = dehom(H1); -- Now we look at the two different charts on the blow up {xv-yu=0} -- Chart {u=1} use A2; h0u = sub(h0,{x=>x,y=>x*y})//x^5; h1u = sub(h1,{x=>x,y=>x*y})//x^5; A2st = kk[x,y,s,t]; h0ust = sub(h0u,A2st); h1ust = sub(h1u,A2st); hust = s*h0ust+t*h1ust; nodal = ideal(x)+ideal(hust)+ideal(diff(x,hust),diff(y,hust)); nodal = ideal mingens nodal; nodalu = sub(eliminate(nodal,{x,y}),P1st); --worsethannodal = ideal(x)+ideal(hust)+ideal(diff(x,hust),diff(y,hust))+ideal(det(matrix{{diff(x,diff(x,hust)),diff(y,diff(x,hust))},{diff(x,diff(y,hust)),diff(y,diff(y,hust))}})); --worsethannodal = ideal mingens worsethannodal; --worsethannodalu = sub(eliminate(worsethannodal,{x,y}),P1st); -- Chart {v=1} use A2; h0v = sub(h0,{x=>x*y,y=>y})//y^5; h1v = sub(h1,{x=>x*y,y=>y})//y^5; A2st = kk[x,y,s,t]; h0vst = sub(h0u,A2st); h1vst = sub(h1u,A2st); hvst = s*h0vst+t*h1vst; nodal = ideal(x)+ideal(hvst)+ideal(diff(x,hvst),diff(y,hvst)); nodal = ideal mingens nodal; nodalv = sub(eliminate(nodal,{x,y}),P1st); --worsethannodal = ideal(x)+ideal(hvst)+ideal(diff(x,hvst),diff(y,hvst))+ideal(det(matrix{{diff(x,diff(x,hvst)),diff(y,diff(x,hvst))},{diff(x,diff(y,hvst)),diff(y,diff(y,hvst))}})); --worsethannodal = ideal mingens worsethannodal; --worsethannodalv = sub(eliminate(worsethannodal,{x,y}),P1st); nodalpoint = ideal mingens(nodalu+nodalv); --worsenodalpoint = ideal mingens(worsethannodalu+worsethannodalv); nodallist#i = nodalpoint; --worsenodallist#i = worsenodalpoint; ) -- The resulting list gives for each point p1,p2,p3,p4,p5,p6, the coordinates [s,t] corresponding to the curves in the pencil -- that are nodal along the corresponding exceptional divisor. If we get ideal(t,s) everywhere, there are no curves with nodes (or worse) along the exceptional divisors. peek nodallist --peek worsenodallist -- Last, we check that there are no singularities worse than nodes. It is enough to check on the points away from the exceptional divisors. PP2st = kk[X,Y,Z][s,t] G0st = sub(G0,PP2st) G1st = sub(G1,PP2st) gradientG0st = sub(gradientG0,PP2st) gradientG1st = sub(gradientG1,PP2st) hessianG0st = sub(hessianG0,PP2st) hessianG1st = sub(hessianG1,PP2st) -- Now we check that the curves in the pencil have no singularities worse than nodes outside the base points p1,p2,p3,p4,p5,p6 nodes = ideal mingens(ideal(s*gradientG0st+t*gradientG1st)) worsethannodes = ideal mingens(ideal(s*gradientG0st+t*gradientG1st)+minors(2,s*hessianG0st+t*hessianG1st)) -- Many of these equations are just t^2 multiplied by a homogeneous polynomial in (X,Y,Z) apply(flatten entries mingens worsethannodes,c->(coefficients c)_0) pointsworsethannodes=ideal( (coefficients(mingens worsethannodes)_(0,3))_1, (coefficients(mingens worsethannodes)_(0,4))_1, (coefficients(mingens worsethannodes)_(0,5))_1, (coefficients(mingens worsethannodes)_(0,6))_1, (coefficients(mingens worsethannodes)_(0,7))_1, (coefficients(mingens worsethannodes)_(0,8))_1)+minors(2,(coefficients mingens nodes)_1); pointsworsethannodes = sub(pointsworsethannodes,PP2); -- Now we check that there are no worse than nodal singularities outside the points p1,p2,p3,p4,p5,p6 time saturate(pointsworsethannodes,intersect(p1,p2,p3,p4,p5,p6)) -- Finally, we check that the curves in the pencil have no nodes on B BP2 = map1(B); saturate(BP2+n0) saturate(BP2+n1) saturate(BP2+n2) saturate(BP2+n3) saturate(BP2+n4) saturate(BP2+n5)