-- PART 1 --------------- -- What is the type of the normal bundle of a general quintic elliptic curve in -- a the general cubic threefold? p=101 -- a fairly small prime number Fp=ZZ/p -- a finite ground field R=Fp[x_0..x_4] -- coordinate ring of P^4 setRandomSeed("beta") -- the normal bundle spitts into a sum of two line bundles -- N_C/X(-1) = L1 ++ L2 with L1**L2== O_E. -- However only in 50 percent of the case is the splitting defined over -- F_p. In the other cases L1 and L2 are Galois conjugated and the -- splitting is defined over F_p^2. -- The random choice below with the randomSeed starting at "beta" -- leads to one with splitting defined over F_p. m1=random(R^6,R^{6:-1}); m=m1-transpose m1; betti(I=pfaffians(4,m_{0..4}^{0..4})) -- ideal of an elliptic normal curve E betti res I -- => E is ACM singE=minors(codim I,jacobian I)+I; (codim I==3, degree I==5, genus I==1, codim singE == 5) f=pfaffians(6,m) -- ideal of X singf=ideal jacobian f; (codim f==1, degree f==3, codim singf == 5) betti(I2=saturate(I^2+f)) cN=prune(image( gens I)/ image gens I2); -- a module whose sheafication is the conormal sheaf of E in X betti(N=Hom(cN,R^1/I)) -- the module of global section of the normal bundle apply(toList(-1..2),i->hilbertFunction(i,N)) -- => N(-1)=N**R^{-1} has degree 0 and no sections -- Since det N(-1)=O_E there are two possibilities for rank two vector bundle -- on E. Either N(-)= L1++L2 with L1=L2^-1, or N(-1) is an extension -- 0 -> L -> N(-1) -> L -> 0 -- with L in Pic^0(E) two torsion. -- We check that the first possibility happens. Note that L1 and L2 might be Galois -- conjugated, so that the characteristic polynomila cdetA of degree 2 splits only -- over an quadratic extension. Nminus1 = N**R^{-1}; time betti(EndN=Hom(Nminus1,Nminus1)) -- used 33.07 seconds -- => two endomorphisms h0=homomorphism EndN_{0}; h0a=map(R^10,R^10,h0) h1=homomorphism EndN_{1}; h1a=map(R^10,R^10,h1) -- the corresponding matrices T=Fp[t] -- an extra ring chiA=det(sub(h0a,T)-t*sub(h1a,T)) -- the characteristic polynomial factor chiA cdetA=decompose ideal chiA -- its irreducible factors -- want two factors. We read off the Eigenvalues in the next line eigenValues=apply(cdetA,c-> sub(-(gens c)_(0,0)%ideal t,R)) betti (N1=syz(h0a-eigenValues_0*h1a)) betti (N2=syz(h0a-eigenValues_1*h1a)) -- the Eigenspaces betti N L1=prune coker(presentation N|N1)**R^{-1}; -- the corresponding line bundles betti res L1 L2=prune coker(presentation N|N2)**R^{-1}; betti res L2 time betti (homL1L2=Hom(L1**L2,R^1/I)) -- used 32.25 seconds -- => L1 tensor L2 = O_E annihilator homL1L2==I -- check time betti(iso=Hom(L1++L2,N)) -- used 9.22 seconds iso0=homomorphism iso_{0},iso1=homomorphism iso_{1} det map(R^10,R^10,iso0+iso1)=!=0 -- N(-1) is isomorhic to L1++L2 prune ker(iso0+iso1) -- is the zero module prune coker(iso0+iso1) -- as well. -- Since L1 is defined over a finite field it has finite order in the -- finite group (Pic^0(E))(kk). We compute the order just for fun -- in the most naive way. time betti(twoL1=prune Hom(L2,L1)) betti(kL1=twoL1) k=2 time while rank target gens kL1=!=1 do (k=k+1; kL1=prune Hom(L2,kL1)); -- used 29 seconds -- in a case where the order k=52 k -- the order of L1 in Pic E. betti kL1 kL1==R^1/I -- PART 2 --------------- -- unirationality construction of pairs (C,X) of smooth arithmetically Cohen-Macaulay curves -- of degree 12 and genus 10 on a cubic threefold X. We show that h^0(omega_C(-1))=2 and -- that the twisted normal bundle N of C in X satisfies h^1(N(-1))=0. setRandomSeed"I am feeling lucky"; -- initiate random generator p=32009; -- a prime number Fp=ZZ/p; -- a prime field S=Fp[x_0,x_1,y_0..y_2, Degrees=>{2:{1,0},3:{0,1}}]; -- Cox ring of P^1 x P^2 m=ideal basis({1,1},S); -- irrelevant ideal randomCurveGenus10Withg16=(S)->( M:=random(S^{6:{-4,-4},3:{-3,-5}},S^{3:{-4,-5}}); -- a random map F1 <--M-- F2 N':=syz transpose M; -- syzygy-matrix of the dual of M N:=transpose(N'*random(source N',S^{3:{3,4},4:{3,3}})); ideal syz transpose N) -- the vanishing ideal of the curve IC'=saturate(randomCurveGenus10Withg16(S),m); -- compute the plane model: Sel=Fp[x_0,x_1,y_0..y_2,MonomialOrder=>Eliminate 2]; -- eliminination order R=Fp[y_0..y_2]; -- coordinate ring of P^2 IGammaC=sub(ideal selectInSubring(1,gens gb sub(IC',Sel)),R); -- plane model -- check that GammaC is nodal curve of correct genus and degree: distinctPoints=(J)->( singJ:=minors(2,jacobian J)+J; codim singJ==3) IDelta=ideal jacobian IGammaC + IGammaC; distinctPoints(IDelta); delta=degree IDelta; d=degree IGammaC; g=binomial(d-1,2)-delta; (d,g)==(9,10) IDelta=saturate IDelta; betti res IDelta -- check smoothness and global sections of L2 -- compute embedding into PP4: LK=(mingens IDelta)*random(source mingens IDelta, R^{10:{-6}});-- compute a basis of the Riemann-Roch space L(Omega_C) Pt=random(Fp^1,Fp^2); -- random point in P^1 L1=substitute(IC',sub(Pt,R)|vars R); -- L1 is the fiber over Pt KD=LK*(syz(LK % gens L1))_{0..4}; -- compute a basis of those elements in L(Omega_C) that vanish in L1 T=Fp[z_0..z_4]; -- coordinate ring of P^4 phiKD=map(R,T,KD); -- embedding IC=preimage_phiKD(IGammaC); betti res IC-- check aCM, h^0(Omega_C(-1)) and L1 a smooth isolated point X=ideal((mingens IC)*random(source mingens IC,T^{1:-3})) ;-- a random cubic threefold containing C IC2=saturate(IC^2+X); cNCX=image gens IC/ image gens IC2; -- the conormal sheaf in X time NCX=sheaf Hom(cNCX,T^1/IC); -- the normal sheaf in X -- used 54.2914 seconds -- check cohomology of normal sheaf in X: HH^0 NCX(-1)==0 HH^1 NCX(-1)==0 HH^1 NCX==0 HH^0 NCX==Fp^24 -- this is what we expect: 3*10-3+ rank HH^0(sheaf module IC)(3) + 24 == rank HH^0 (NCX) +binomial(3+4,3) cNCP= prune(image (gens IC)/ image gens saturate(IC^2)); -- the conormal sheaf in P^4 time NCP=sheaf Hom(cNCP,T^1/IC); -- the normal sheaf in P^4 -- used 38.5407 seconds -- check cohomology of normal sheaf in P^4 HH^1 (NCP)(-1)==0 HH^1 (NCP)==0 HH^0 (NCP)==Fp^51 -- we expect: (4+1)*12-(4-3)*(10-1) -- => C lies in a generically smooth component of expected dimension ---- PART 3 ---- distinctPoints=(J)->( singJ:=minors(2,jacobian J)+J; codim singJ==3) randomCurveGenus10Degree12OneAttempt=(T)->( S:=(coefficientRing T)[x_0,x_1,y_0..y_2, Degrees=>{2:{1,0},3:{0,1}}]; -- Cox ring of P^1 x P^2 Sel:=(coefficientRing T)[x_0,x_1,y_0..y_2,MonomialOrder=>Eliminate 2]; -- eliminination order S2:=(coefficientRing T)[y_0..y_2]; -- coordinate ring of P^2 m:=ideal basis({1,1},S); -- maximal ideal M:=random(S^{6:{-4,-4},3:{-3,-5}},S^{3:{-4,-5}}); -- a random map F1 <--M-- F2 N':=syz transpose M; -- syzygy-matrix of the dual of M N:=transpose(N'*random(source N',S^{3:{3,4},4:{3,3}})); IC':=saturate(ideal syz transpose N,m); -- vanishing ideal of the curve -- compute the plane model: IGammaC:=sub(ideal selectInSubring(1,gens gb sub(IC',Sel)),S2); -- plane model -- check that GammaC is nodal curve of correct genus and degree: IDelta:=ideal jacobian IGammaC + IGammaC; if not distinctPoints(IDelta) then return null; IDelta=saturate IDelta; delta:=degree IDelta; d:=degree IGammaC; g:=binomial(d-1,2)-delta; if not (betti res saturate IDelta==new BettiTally from {(0,{0},0) => 1, (1,{5},5) => 3, (1,{6},6) => 1, (2,{7},7) => 3}) then return null; if not (d,g)==(9,10) then return null; -- compute embedding into PP4: LK:=(mingens IDelta)*random(source mingens IDelta, S2^{10:{-6}});-- compute a basis of the Riemann-Roch space L(Omega_C) Pt:=random((coefficientRing T)^1,(coefficientRing T)^2); -- random point in P^1 L1:=substitute(IC',Pt|vars S2); -- L1 is the fiber over Pt KD:=LK*(syz(LK % gens L1))_{0..4}; -- compute a basis of those elements in L(Omega_C) that vanish in L1 phiKD:=map(S2,T,KD); -- embedding IC:=preimage_phiKD(IGammaC); -- check aCM, h^0(Omega_C(-1)) and L1 a smooth isolated point if not (betti res IC==new BettiTally from {(0,{0},0) => 1, (1,{3},3) => 8, (2,{4},4) => 9, (3,{6},6) => 2}) then (return null); cNCP:=prune(image (gens IC)/ image gens saturate(IC^2)); -- the conormal sheaf in P^4 NCP:=sheaf Hom(cNCP,T^1/IC); -- the normal sheaf in P^4 if not (HH^1 (NCP)(-1)==0 and HH^1 (NCP)==0 and HH^0 (NCP)==(coefficientRing T)^51) then (return null); ideal mingens IC) randomCurveGenus10Degree12=(T)->for i from 0 do (IC:=randomCurveGenus10Degree12OneAttempt(T); if IC=!=null then return IC) Fp=ZZ/5; -- a small field T=Fp[z_0..z_4]; setRandomSeed("gamma"); -- initiate random generator -- find a curve of genus 10 and degree 12 that has the desired properties: time IC=randomCurveGenus10Degree12(T); -- used 37.6084 seconds MC=transpose ((res IC).dd_2); IC==ideal syz MC -- regain the curve from m MC getEllipticWithCommonThreefold=(IC)->( max3:=ideal basis(3,T); -- third power of the maximal ideal for attemptsHS from 1 do ( mEtmp:=random(T^5,T^{5:-1}); mE:=mEtmp-transpose mEtmp; -- the 5x5 skew-symmetric matrix IE:=pfaffians(4,mE); -- the elliptic curve E if rank source gens intersect(IE+IC,max3)<28 then ( rltn:=(syz(gens IC|gens intersect(IE,max3)))_{0}; -- the relation between the generators X:=ideal (gens IC*rltn^{0..7}); -- the cubic threefold <<"attempts hypersurface = "< dim (ideal jacobian X + X)==0 -- a function that checks smoothnees of a hypersurface X -- a function that returns the normal sheaf of V(I) subset V(X) subset P^r normalSheaf=(I,X)->( I2:=saturate(I^2+X); cNIX:=image gens I/ image gens I2; sheaf Hom(cNIX,(ring I)^1/I)) sectionsTwistedNormalBundle=(mE,X)->( IE:=pfaffians(4,mE); NEX:=normalSheaf(IE,X); HH^0(NEX(-1))) -- compute the number of sections of the twisted normal sheaf -- for the elliptic normal curve defined by mE time for attemptsN from 1 do ( time for attemptsS from 1 do ( time (mE,X)=getEllipticWithCommonThreefold(IC); if isSmooth X then ( <<"attempts smooth = "<