option(none); LIB "elim.lib"; LIB "solve.lib"; LIB "primdec.lib"; print(""); print("FERMAT MIRROR K3 AS LEFSCHETZ FIBRATION (II)"); print(""); print("This program carries out the second step in the mirror computation:"); print("it takes our fixed K3,"); print(""); print("u_0u_1u_2u_3 = 1"); print("u_0 + u_1 + u_2 + u_3 = 0"); print(""); print("and computes its branch curve under projection"); print("to C^2, using the maps"); print(""); print("b(u) = (1+1/4)u_0 + iu_1 - u_2 - iu_3"); print("c(u) = u_2"); ring fourspace = (0,i),(u0,u1,u2,u3),dp; minpoly = i^2+1; poly torus = u0*u1*u2*u3-1; poly amap = (1/4)*(u0+u1+u2+u3); poly bmap = (1/4)*(u0+1/4*u0+i*u1-u2-i*u3); poly cmap = u2; // goes to C^* not C, so is highly non-generic ideal allmaps = torus,amap,bmap,cmap; matrix jac[4][4] = diff(torus,u0),diff(torus,u1),diff(torus,u2),diff(torus,u3), diff(amap,u0), diff(amap, u1),diff(amap, u2),diff(amap,u3), diff(bmap,u0), diff(bmap, u1),diff(bmap, u2),diff(bmap,u3), diff(cmap,u0), diff(cmap, u1),diff(cmap, u2),diff(cmap,u3); ideal branchcurve = torus,amap,det(jac); ring graphspace = (0,i),(a,b,c,u0,u1,u2,u3),dp; minpoly = i^2+1; ideal graph = b-imap(fourspace,bmap), c-imap(fourspace,cmap), imap(fourspace,branchcurve); option(none); ideal locus = elim1(graph,u0*u1*u2*u3); poly branch = locus[1]; print(""); print("The branch curve in b-c coordinates is:"); short = 0; branch; print(""); print("Now we project the branch curve to the c-plane"); print("The resulting singularities have c-values which are"); print("the zeros of (factorized)"); ideal vertical = branch,diff(branch,c); poly tangencies = elim1(vertical,c)[1]; short = 0; factorize(tangencies); print(""); print("Of course, the order 12 factor contains just those b-values"); print("which are the 12 critical points of the Lefschetz pencil"); option(prompt);