//////////////////////////////////////////////////////////////////////////////////////////////// // 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*x-b5*x^2); // g2; // -x5+(t32+2t30+t28+5)*x4+(-t32-2t30-t28)*x3-4*x2y+(-16t32-32t30-16t28)*x2+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*x-b5*x^2),x, x + A4); // gz4z; // poly gz4z = substitute(substitute(f2, y, y+b3*b4*b5*x-b5*x^2),x, x + A4); 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*x-b5*x^2),x, x + A3); // gz3z; // -x5+(t32+2t30+t28-15)*x4+(15t32+30t30+15t28-80)*x3-4*x2y+(68t32+136t30+68t28-160)*x2-24*xy+y2+(96t32+192t30+96t28)*x-32*y+256 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*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+12t32+24t30+12t28+30)*x4+(-8t64-32t62-48t60-32t58-8t56-16t32-32t30-16t28-120)*x3y+(12t64+48t62+72t60+48t58+12t56-8t32-16t30-8t28+308)*x2y2+(-8t64-32t62-48t60-32t58-8t56+16t32+32t30+16t28-248)*xy3+(2t64+8t62+12t60+8t58+2t56-4t32-8t30-4t28+62)*y4+(124t64+496t62+744t60+496t58+124t56+104t32+208t30+104t28)*x3+(-372t64-1488t62-2232t60-1488t58-372t56+392t32+784t30+392t28-1280)*x2y+(372t64+1488t62+2232t60+1488t58+372t56-744t32-1488t30-744t28+1920)*xy2+(-124t64-496t62-744t60-496t58-124t56+248t32+496t30+248t28-640)*y3+(1280t64+5120t62+7680t60+5120t58+1280t56-3328t32-6656t30-3328t28)*x2+(-2560t64-10240t62-15360t60-10240t58-2560t56+5120t32+10240t30+5120t28+3072)*xy+(1280t64+5120t62+7680t60+5120t58+1280t56-2560t32-5120t30-2560t28-1536)*y2+(-3072t64-12288t62-18432t60-12288t58-3072t56+6144t32+12288t30+6144t28)*x+(3072t64+12288t62+18432t60+12288t58+3072t56-6144t32-12288t30-6144t28)*y drawTropicalCurve(newfnox,"max");