//////////////////////////////////////////////////////////////////////////////////////////////// // Modifications for Type VI Graph: Non-generic and vanishing x^3 with Vertical modifications // //////////////////////////////////////////////////////////////////////////////////////////////// // The following contains an example for the modified Type VI graph in R^3 (with one genus 1 component with a node). The curve can be visualized by means of projections. // Since our modifications involve square roots, we take our branch points to be squares, resp. negative of squares, for computational convenience. // The parameters w2,..., w5 satisfy w2 < w3 = w4 = w5 with no cancellations. LIB "all.lib"; LIB "poly.lib"; LIB "all.lib"; LIB "tropical.lib"; LIB "elim.lib"; ring rr = (0,t), (a2,a3,a4,a5, x,y,z),dp; poly f=y^2-x*(x-a2)*(x-a3)*(x-a4)*(x-a5); // f; // -a2*a3*a4*a5*x+a2*a3*a4*x^2+a2*a3*a5*x^2+a2*a4*a5*x^2+a3*a4*a5*x^2-a2*a3*x^3-a2*a4*x^3-a3*a4*x^3-a2*a5*x^3-a3*a5*x^3-a4*a5*x^3+a2*x^4+a3*x^4+a4*x^4+a5*x^4-x^5+y^2 setring(rr); poly b2 = (t^14+t^16); poly b3 = (2); poly b4 = (1); poly b5 = (2); poly A2 = b2^2; poly A3 = b3^2; poly A4 = b4^2; poly A5 = -1*b5^2; // A5; // -4 // A4; // 1 // A3; // 4 map P2 = rr, A2, A3, A4, A5, x, y, z; poly ff = P2(f); ring r = (0,t),(x,y),dp; map newP2 = rr, 0,0,0,0,x,y,0; poly f2 = newP2(ff); // f2; // -x5+(t32+2t30+t28+t18+t16-t10+4t9+2t8-4t5+1)*x4+(-t50-3t48-3t46-t44+t42-4t41-8t39-3t38-2t36+8t35-t34+4t33-t32-2t30-t26-4t25+4t23+4t21+4t19+5t18-8t17+16t14+8t13+5t10+12t9+20t5+16)*x3+(t66+2t64+t62-t60-t58+4t57+t56+4t55+t54-8t53-16t51-5t50-4t49-10t48+12t47-21t46-33t44-16t43-21t42-20t41-10t40-28t39-5t38-32t37-2t36-44t35-4t34-20t33-16t32-8t31-48t30-17t28-8t27-12t26-16t25-4t23-32t22-16t21-4t19-12t18-32t17-16t16-16t14-32t13-4t10-16t9-32t8-16t5-16)*x2+y2+(t76+2t74+t72+4t71+8t69+2t68+8t67+8t66+8t65+10t64+12t63+20t62+16t61+33t60+16t59+30t58+32t57+25t56+44t55+44t54+40t53+64t52+40t51+44t50+56t49+40t48+68t47+60t46+64t45+48t44+64t43+20t42+48t41+40t40+32t39+68t38+32t37+32t36+32t35+16t33+16t32+32t30+16t28)*x drawTropicalCurve(f2,"max"); /////////////////// // XZ-projection // /////////////////// poly b2 = newP2(b2); poly b3 = newP2(b3); poly b4 = newP2(b4); poly b5 = newP2(b5); poly g2 = substitute(f2, y, y+b3*b4*b5*(1+t^13)*x-b5*x^2); // g2; // -x5+(t32+2t30+t28+5)*x4+(-t32-2t30-t28-16t13)*x3-4*x2y+(-16t32-32t30-16t28+16t26+32t13)*x2+(8t13+8)*xy+y2+(16t32+32t30+16t28)*x drawTropicalCurve(g2,"max"); ///////////////////// // Z_4Y-projection // ///////////////////// poly b2 = newP2(b2); poly b3 = newP2(b3); poly b4 = newP2(b4); poly b5 = newP2(b5); poly A4 = newP2(A4); poly g2 = substitute(f2, x, x+A4); // g2; // -x5+(t32+2t30+t28-4)*x4+(3t32+6t30+3t28+10)*x3+(-13t32-26t30-13t28+28)*x2+y2+(-15t32-30t30-15t28+15)*x drawTropicalCurve(g2,"max"); ///////////////////// // Z_4Z-projection // ///////////////////// poly gz4z = substitute(substitute(f2, y, y+b3*b4*b5*(1+t^13)*x-b5*x^2),x, x + A4); // gz4z; // drawTropicalCurve(gz4z,"max"); ///////////////////// // Z_3Y-projection // ///////////////////// poly A3 = newP2(A3); poly h2 = substitute(f2, x, x+A3); // h2; // -x5+(t32+2t30+t28-19)*x4+(15t32+30t30+15t28-128)*x3+(68t32+136t30+68t28-368)*x2+y2+(96t32+192t30+96t28-384)*x drawTropicalCurve(h2,"max"); ///////////////////// // Z_3Z-projection // ///////////////////// poly gz3z = substitute(substitute(f2, y, y+b3*b4*b5*(1+t^13)*x-b5*x^2),x, x + A3); // gz3z; // drawTropicalCurve(gz3z,"max"); /////////////////// // ZY-projection // /////////////////// ring s = (0,t),(x,y,z),dp; map P = r, x,y; poly ff= P(f2); poly b3 = P(b3); poly b4 = P(b4); poly b5 = P(b5); ideal I = (ff,z-y+b3*b4*b5*(1+t^13)*x-b5*x^2); poly fnox= eliminate(I,x)[1]; // Replace z by y and y by x so that the pictures are not flipped. ring r2 = (0,t),(x,y),dp; setring(r2); map PP = s,0,x,y; poly newfnox = PP(fnox); // newfnox; // x5-5*x4y+10*x3y2-10*x2y3+5*xy4-y5+(2t64+8t62+12t60+8t58+2t56-4t45-8t43-4t41+12t32+24t30+12t28-84t13+30)*x4+(-8t64-32t62-48t60-32t58-8t56+16t45+32t43+16t41-16t32-32t30-16t28+176t13-120)*x3y+(12t64+48t62+72t60+48t58+12t56-24t45-48t43-24t41-8t32-16t30-8t28-104t13+308)*x2y2+(-8t64-32t62-48t60-32t58-8t56+16t45+32t43+16t41+16t32+32t30+16t28+16t13-248)*xy3+(2t64+8t62+12t60+8t58+2t56-4t45-8t43-4t41-4t32-8t30-4t28-4t13+62)*y4+(-8t77-32t75-48t73-32t71-8t69+124t64+496t62+744t60+256t58-356t56-240t54-648t45-1296t43-648t41+640t39+104t32+208t30+104t28+1408t26-896t13)*x3+(24t77+96t75+144t73+96t71+24t69-372t64-1488t62-2232t60-1280t58+44t56+208t54+1112t45+2224t43+1112t41-640t39+392t32+784t30+392t28-896t26+2432t13-1280)*x2y+(-24t77-96t75-144t73-96t71-24t69+372t64+1488t62+2232t60+1536t58+468t56+48t54-696t45-1392t43-696t41-744t32-1488t30-744t28-768t26-2304t13+1920)*xy2+(8t77+32t75+48t73+32t71+8t69-124t64-496t62-744t60-512t58-156t56-16t54+232t45+464t43+232t41+248t32+496t30+248t28+256t26+768t13-640)*y3+(-512t90-2048t88-3072t86-1536t84+512t82+512t80-1536t77-6144t75-9216t73-3328t71+4096t69+2816t67-1024t65+1280t64+5120t62+7680t60+9472t58+9984t56+4352t54-4608t52-1280t45-2560t43-1280t41-3072t39-3328t32-6656t30-3328t28+5632t26+3072t13)*x2+(1024t90+4096t88+6144t86+4096t84+1024t82+3072t77+12288t75+18432t73+10240t71-1024t69-2048t67-2560t64-10240t62-15360t60-18432t58-18944t56-8192t54-1024t45-2048t43-1024t41-2048t39+5120t32+10240t30+5120t28-5120t26+4096t13+3072)*xy+(-512t90-2048t88-3072t86-2048t84-512t82-1536t77-6144t75-9216t73-5120t71+512t69+1024t67+1280t64+5120t62+7680t60+9216t58+9472t56+4096t54+512t45+1024t43+512t41+1024t39-2560t32-5120t30-2560t28+2560t26-2048t13-1536)*y2+(2048t103+8192t101+12288t99+8192t97+2048t95+5120t90+20480t88+30720t86+16384t84-3072t82-4096t80-4096t77-16384t75-24576t73-30720t71-32768t69-14336t67-3072t64-12288t62-18432t60-14336t58-7168t56-2048t54+14336t45+28672t43+14336t41+6144t32+12288t30+6144t28)*x+(-2048t103-8192t101-12288t99-8192t97-2048t95-5120t90-20480t88-30720t86-16384t84+3072t82+4096t80+4096t77+16384t75+24576t73+30720t71+32768t69+14336t67+3072t64+12288t62+18432t60+14336t58+7168t56+2048t54-14336t45-28672t43-14336t41-6144t32-12288t30-6144t28)*y drawTropicalCurve(newfnox,"max");