////////////////////////////////////// // Modifications for Type VII Graph // ////////////////////////////////////// // The following contains an example for the modified Type VII graph in R^3 (the good reduction case). 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 cancellation of initial terms 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^10+t^12); poly b3 = (4*t^10+t^19); poly b4 = (3*t^10+t^18); poly b5 = (12*t^10); poly A2 = b2^2; poly A3 = b3^2; poly A4 = b4^2; poly A5 = -1*b5^2; // A2; // (t24+2t22+t20) // A3; // (t38+8t29+16t20) // A4; // (t36+6t28+9t20) // A5; // (-144t20) 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+(t38+t36+8t29+6t28+t24+2t22-118t20)*x4+(-t74-6t66-8t65-t62-3t60+132t58-48t57+127t56-8t53-6t52-16t51-12t50+1072t49+762t48+119t44+238t42+3575t40)*x3+(t98+2t96-143t94+6t90+8t89+12t88+16t87-858t86-1144t85-135t82+48t81-398t80+96t79-1687t78-6864t77-2432t76-1080t73-768t72-2160t71-1536t70-11448t69-14592t68-3456t64-6912t62-24192t60)*x2+y2+(144t118+288t116+144t114+864t110+1152t109+1728t108+2304t107+864t106+1152t105+1296t102+6912t101+4896t100+13824t99+5904t98+6912t97+2304t96+10368t93+13824t92+20736t91+27648t90+10368t89+13824t88+20736t84+41472t82+20736t80)*x drawTropicalCurve(f2,"max"); //////////////////// // Z4Y-projection // //////////////////// poly g2 = substitute(f2, x, x+b4^2); // g2; // -x5+(t38-4t36+8t29-24t28+t24+2t22-163t20)*x4+(3t74-6t72+18t66+24t65-72t64-t62+t60+176t58+144t57-705t56-8t53+18t52-16t51+36t50+1360t49-2934t48+155t44+310t42-1483t40)*x3+(3t110-4t108+36t102+24t101-72t100-2t98-t96+454t94+288t93-921t92-12t90-16t89+12t88-32t87+2112t86+3584t85-6732t84-162t82-96t81+94t80-192t79+3509t78+16320t77-20570t76-1296t73+1860t72-2592t71+3720t70+21384t69-17796t68+243t64+486t62+7695t60)*x2+y2+(t146-t144+18t138+8t137-24t136-t134-t132+280t130+144t129-379t128-12t126-8t125-6t124-16t123+2292t122+2224t121-3798t120-198t118-96t117-133t116-192t115+9319t114+18048t113-20383t112-972t110-1584t109+132t108-3168t107+20190t106+70344t105-53004t104-1377t102-7776t101+3069t100-15552t99+22662t98+128304t97-45693t96-11016t93+1458t92-22032t91+2916t90+88128t89+46170t88-9639t84-19278t82+77112t80)*x drawTropicalCurve(g2,"max"); //////////////////// // Z3Y-projection // //////////////////// poly g2 = substitute(f2, x, x+b3^2); // g2; // -x5+(-4t38+t36-32t29+6t28+t24+2t22-198t20)*x4+(-6t76+3t74-96t67+18t66+24t65+3t62+5t60-980t58+144t57+191t56+24t53-6t52+48t51-12t50-4752t49+1146t48+183t44+366t42-6537t40)*x3+(-4t114+3t112-96t105+18t104+48t103+3t100+4t98-1366t96+288t95+574t94+48t91-12t90+80t89-24t88-11584t87+3444t86+3056t85+558t82-96t81+940t80-192t79-51442t78+18336t77+5200t76+2928t73-1056t72+5856t71-2112t70-104592t69+31200t68+3792t64+7584t62-74800t60)*x2+y2+(-t152+t150-32t143+6t142+24t141+t138+t136-584t134+144t133+383t132+24t129-6t128+32t127-12t126-6832t125+2298t124+3568t123+375t120-96t119+510t118-192t117-49129t116+21408t115+17424t114+3440t111-1440t110+5472t109-2880t108-208784t107+104544t106+41600t105+15504t102-8448t101+28448t100-16896t99-498288t98+249600t97+38400t96+30336t93-15360t92+60672t91-30720t90-598400t89+230400t88+17920t84+35840t82-268800t80)*x drawTropicalCurve(g2,"max"); //////////////////// // Z2Y-projection // //////////////////// poly g2 = substitute(f2, x, x+b2^2); // g2; // -x5+(t38+t36+8t29+6t28-4t24-8t22-123t20)*x4+(-t74-6t66-8t65+3t62+9t60+144t58-48t57+131t56+24t53+18t52+48t51+36t50+1104t49+780t48-24t46-393t44-738t42+3093t40)*x3+(-2t98-4t96-146t94-12t90-16t89-24t88-32t87-873t86-1168t85+15t84+300t82-96t81+826t80-192t79-499t78-6984t77-2027t76+96t75+72t74+2304t73+1640t72+4416t71+3120t70-8184t69-12687t68-1508t66+4710t64+12372t62-14185t60)*x2+y2+(-t122-4t120-150t118-292t116-151t114-8t113-24t112-32t111-899t110-1200t109-1745t108-2336t107-714t106-1208t105+703t104-192t103+61t102-7192t101-3561t100-13968t99-5214t98-5760t97-1318t96+4480t95+3184t94-3768t93-9273t92-16368t91-25310t90-9280t89-11449t88+11388t86-1813t84-28370t82-17400t80)*x drawTropicalCurve(g2,"max");