-- Example 8e: a genus 8 graph curve -- Part 1: Check the graph curve equations in the y coordinates eL = {{0,1},{0,5},{0,13},{1,2},{1,10},{2,3},{2,7},{3,4},{3,12},{4,5},{4,9},{5,6},{6,7},{6,11},{7,8},{8,9},{8,13},{9,10},{10,11},{11,12},{12,13}}; M = matrix apply(14, i -> apply(14, j -> if member({i,j},eL) or member({j,i},eL) then 1 else 0)); R=QQ[y_0..y_7]; I=ideal(y_1*y_7+y_2*y_7-y_4*y_7-y_5*y_7,y_0*y_7-y_4*y_7-y_5*y_7,y_3*y_6,y_2*y_6-y_4*y_6,y_3*y_5-y_5*y_7,y_2*y_5,y_0*y_5-y_1*y_5-y_1*y_6,y_3*y_4+y_2*y_7-y_4*y_7,y_1*y_4+y_2*y_7-y_4*y_7,y_0*y_4-y_4*y_6-y_4*y_7,y_0*y_3+y_2*y_7-y_4*y_7-y_5*y_7,y_1*y_2+y_1*y_3+y_2*y_7-y_4*y_7-y_5*y_7,y_0*y_2-y_4*y_6-y_2*y_7,y_0*y_1-y_1*y_5-y_1*y_6+y_2*y_7-y_4*y_7,y_0^2-y_1*y_5-y_0*y_6-y_1*y_6-y_4*y_7,y_5*y_6*y_7,y_4^2*y_7+y_4*y_5*y_7-y_4*y_6*y_7-y_4*y_7^2,y_2*y_4*y_7-y_4*y_6*y_7-y_2*y_7^2,y_2^2*y_7+y_2*y_3*y_7-y_4*y_6*y_7-y_2*y_7^2,y_4*y_5*y_6,y_1^2*y_5-y_1*y_5^2+y_1^2*y_6-y_1*y_5*y_6-y_4*y_5*y_7); L={ ideal(y_6,y_4,y_3-y_7,y_2,y_1-y_5,y_0-y_5), ideal(y_6,y_4+y_5-y_7,y_3-y_7,y_2,y_1-y_7,y_0-y_7), ideal(y_6,y_5,y_4-y_7,y_2+y_3-y_7,y_1-y_3,y_0-y_7), ideal(y_5,y_4-y_6-y_7,y_3,y_2-y_6-y_7,y_1,y_0-y_6-y_7), ideal(y_7,y_5,y_3,y_2-y_4,y_1,y_0-y_6), ideal(y_7,y_4,y_3,y_2,y_1-y_5,y_0-y_5-y_6), ideal(y_7,y_5+y_6,y_4,y_3,y_2,y_0), ideal(y_7,y_6,y_5,y_4,y_2+y_3,y_0), ideal(y_7,y_6,y_5,y_4,y_1,y_0), ideal(y_7,y_6,y_5,y_3,y_1,y_0), ideal(y_7,y_6,y_3,y_2,y_1,y_0), ideal(y_7,y_4,y_3,y_2,y_1,y_0), ideal(y_5,y_4,y_3,y_2,y_1,y_0), ideal(y_6,y_5,y_4,y_2,y_1,y_0) }; intersect(L)==I M==matrix apply(14, i -> apply(14, j -> if i==j then 0 else dim(L_i+L_j))) -- This shows that the ideal I defines the desired graph curve -- Part 2: Map to the u coordinates used in Part 3 needsPackage("Cyclotomic"); K = cyclotomicField(8); rho = matrix {{-1_K, 0, -1, 0, -1, -1, 0, -1}, {1, 1, 0, 1, 0, 1, 0, 1}, {0, 1, 0, 0, 0, 1, -1, 0}, {-1, 0, 0, 0, 0, 0, -1, 0}, {0, -1, 0, 0, 0, 0, 0, 0}, {0, -1, 1, -1, 0, 0, 0, 0}, {1, 0, 1, 0, 1, 0, 0, 1}, {1, 0, 1, 0, 1, 0, 1, 0}}; Id = matrix apply(8, i -> apply(8, j -> if i==j then 1_K else 0_K)); P = transpose matrix apply(8, j -> flatten entries((gens ker(rho-ww_8^j*Id))_{0})); R = K[y_0..y_7]; Iy =ideal {y_1*y_7+y_2*y_7-y_4*y_7-y_5*y_7,y_0*y_7-y_4*y_7-y_5*y_7,y_3*y_6,y_2*y_6-y_4*y_6,y_3*y_5-y_5*y_7,y_2*y_5,y_0*y_5-y_1*y_5-y_1*y_6,y_3*y_4+y_2*y_7-y_4*y_7,y_1*y_4+y_2*y_7-y_4*y_7,y_0*y_4-y_4*y_6-y_4*y_7,y_0*y_3+y_2*y_7-y_4*y_7-y_5*y_7,y_1*y_2+y_1*y_3+y_2*y_7-y_4*y_7-y_5*y_7,y_0*y_2-y_4*y_6-y_2*y_7,y_0*y_1-y_1*y_5-y_1*y_6+y_2*y_7-y_4*y_7,y_0^2-y_1*y_5-y_0*y_6-y_1*y_6-y_4*y_7,y_5*y_6*y_7,y_4^2*y_7+y_4*y_5*y_7-y_4*y_6*y_7-y_4*y_7^2,y_2*y_4*y_7-y_4*y_6*y_7-y_2*y_7^2,y_2^2*y_7+y_2*y_3*y_7-y_4*y_6*y_7-y_2*y_7^2,y_4*y_5*y_6,y_1^2*y_5-y_1*y_5^2+y_1^2*y_6-y_1*y_5*y_6-y_4*y_5*y_7}; S=K[u_0..u_7]; F1 = map(S,R,P^-1); F2 = map(S,S,{ww_8^6*u_0,u_1,u_2,u_3,u_4,u_5,u_6,u_7}); sqrt2 = -ww_8^3+ww_8; GraphCurve8 = ideal{u_4*u_5+(-(1/2)*sqrt2+1/2)*u_3*u_6+((1/2)*sqrt2+1/2)*u_2*u_7, u_2*u_5-u_1*u_6+(-2*sqrt2-2)*u_0*u_7, u_1*u_5+(2*sqrt2-4)*u_0*u_6-u_7^2, u_3*u_4+u_1*u_6-u_0*u_7, u_1*u_4+(-2*sqrt2+3)*u_0*u_5+u_6*u_7, u_3^2+4*sqrt2*u_0*u_6-u_7^2, u_2*u_3+(2*sqrt2-2)*u_0*u_5-u_6*u_7, u_1*u_3-4*sqrt2*u_0*u_4-u_5*u_7, u_0*u_3-u_5*u_6-u_4*u_7, u_2^2+4*u_0*u_4-u_6^2, u_1*u_2+(2*sqrt2-3)*u_5*u_6+(2*sqrt2-2)*u_4*u_7, u_0*u_2+((1/4)*sqrt2-1/2)*u_5^2+(-(1/4)*sqrt2+1/2)*u_3*u_7, u_1^2+(2*sqrt2-3)*u_5^2+(-2*sqrt2+2)*u_3*u_7, u_0*u_1+((1/2)*sqrt2-1/2)*u_3*u_6+(-(1/2)*sqrt2+1/2)*u_2*u_7, u_0^2+(1/8)*sqrt2*u_3*u_5-(1/8)*sqrt2*u_1*u_7}; F2(F1(Iy))==GraphCurve8 -- Part 3: Check the linear space P giving GraphCurve8 K = toField(QQ[sqrt2,Degrees=>{0}]/ideal(sqrt2^2-2)); S = K[x_23,x_24,x_34,x_35,x_36,x_45,x_46,x_56]; x_12=32*x_46; x_13=-(64*sqrt2 - 96)*x_56; x_14=-1/32*x_23; x_15=x_24; x_16=-(1/32*(2*sqrt2 + 3))*x_35; x_25=x_34; x_26=x_45; LGraphCurve8 = {x_12-32*x_46, x_13+(64*sqrt2 - 96)*x_56, x_14+(1/32)*x_23, x_15-x_24, x_16+(1/32*(2*sqrt2 + 3))*x_35, x_25-x_34, x_26-x_45}; all(LGraphCurve8, i -> i==0) PcapGr26 = {x_12*x_34-x_13*x_24+x_14*x_23, x_12*x_35-x_13*x_25+x_15*x_23, x_12*x_36-x_13*x_26+x_16*x_23, x_12*x_45-x_14*x_25+x_15*x_24, x_12*x_46-x_14*x_26+x_16*x_24, x_12*x_56-x_15*x_26+x_16*x_25, x_13*x_45-x_14*x_35+x_15*x_34, x_13*x_46-x_14*x_36+x_16*x_34, x_13*x_56-x_15*x_36+x_16*x_35, x_14*x_56-x_15*x_46+x_16*x_45, x_23*x_45-x_24*x_35+x_25*x_34, x_23*x_46-x_24*x_36+x_26*x_34, x_23*x_56-x_25*x_36+x_26*x_35, x_24*x_56-x_25*x_46+x_26*x_45, x_34*x_56-x_35*x_46+x_36*x_45}; R=K[u_0..u_7]; GraphCurve8 = {u_4*u_5+(-(1/2)*sqrt2+1/2)*u_3*u_6+((1/2)*sqrt2+1/2)*u_2*u_7, u_2*u_5-u_1*u_6+(-2*sqrt2-2)*u_0*u_7, u_1*u_5+(2*sqrt2-4)*u_0*u_6-u_7^2, u_3*u_4+u_1*u_6-u_0*u_7, u_1*u_4+(-2*sqrt2+3)*u_0*u_5+u_6*u_7, u_3^2+4*sqrt2*u_0*u_6-u_7^2, u_2*u_3+(2*sqrt2-2)*u_0*u_5-u_6*u_7, u_1*u_3-4*sqrt2*u_0*u_4-u_5*u_7, u_0*u_3-u_5*u_6-u_4*u_7, u_2^2+4*u_0*u_4-u_6^2, u_1*u_2+(2*sqrt2-3)*u_5*u_6+(2*sqrt2-2)*u_4*u_7, u_0*u_2+((1/4)*sqrt2-1/2)*u_5^2+(-(1/4)*sqrt2+1/2)*u_3*u_7, u_1^2+(2*sqrt2-3)*u_5^2+(-2*sqrt2+2)*u_3*u_7, u_0*u_1+((1/2)*sqrt2-1/2)*u_3*u_6+(-(1/2)*sqrt2+1/2)*u_2*u_7, u_0^2+(1/8)*sqrt2*u_3*u_5-(1/8)*sqrt2*u_1*u_7}; F = map(R,S,{-4*sqrt2*u_7, u_0, u_1, (-2*sqrt2+4)*u_2, u_4, (sqrt2/8)*u_3, (1/32)*u_5, ((sqrt2+2)/16)*u_6}); F(ideal(PcapGr26))==ideal(GraphCurve8)