{VERSION 6 0 "IBM INTEL NT" "6.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Text Output" -1 6 1 {CSTYLE "" -1 -1 "Cour ier" 1 10 0 0 255 1 2 2 2 2 2 1 2 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output " -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 } 3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE " " -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 376 "restart; with(linal g):\nvars := [x,y,z]:\nf4 := 2*(x*y^3 + y*z^3 + z*x^3);\nf6 := 1/216 * det(hessian(f4, vars));\nf14 := 1/144 * det( matrix(4,4, [seq(seq(\n` if`(i=4,`if`(j=4,0,diff(f6,vars[j])),\n `if`(j=4, diff(f6,var s[i]), diff(f4,vars[i],vars[j]))),j=1..4),i=1..4)]));\nf21 := 1/28 * d et(jacobian([f4,f6,f14],vars)):\nf4, f6, f14, f21 := op(subs(z=1, [f4, f6,f14,f21])):\n" }}{PARA 7 "" 1 "" {TEXT -1 80 "Warning, the protecte d names norm and trace have been redefined and unprotected\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#f4G,(*(\"\"#\"\"\"%\"xGF()%\"yG\"\"$F(F(* (F'F(F+F()%\"zGF,F(F(*(F'F(F/F()F)F,F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#f6G,***\"#5\"\"\")%\"zG\"\"#F()%\"xGF+F()%\"yGF+F(F(*(F+F()F* \"\"&F(F-F(!\"\"*(F+F()F/F2F(F*F(F3*(F+F()F-F2F(F/F(F3" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$f14G,F**\"$E\"\"\"\")%\"zG\"\"'F()%\"xG\"\"&F() %\"yG\"\"$F(!\"\"*(\"#=F()F0\"\"(F()F-F6F(F(*(F4F(F5F()F*F6F(F(*(F4F(F 9F(F7F(F(**F'F()F*F1F()F-F+F()F0F.F(F2**\"$v$F()F*\"\"#F()F-\"\"%F()F0 \"\")F(F(**\"$]#F()F0FDF()F-\"\"*F(F*F(F2*$)F0\"#9F(F(*$)F-FNF(F(*$)F* FNF(F(**\"#MF(FAF()F-\"#6F(F0F(F2**FHF()F*FDF(F-F()F0FKF(F2**F@F(FXF() F-FFF()F0FBF(F(**FTF(F*F()F-FBF()F0FVF(F2**F@F()F*FFF(FhnF(FIF(F(**FHF ()F*FKF(FCF(F0F(F2**F'F()F*F.F()F-F1F()F0F+F(F2**FTF(FfnF()F*FVF(F-F(F 2" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 218 "We've switched from homogen eous coordinates (x:y:z) to inhomogeneous coordinates by substituting \+ z=1 in the above invariants of G168. This means that the new x refers \+ to the old x/z and the new y refers to the old y/z." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 63 "Now C(g) is the field o f invariants of C(x,y)/(f14) where g is:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "g := f4^3/f6^2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"gG*&,(*(\"\"#\"\"\"%\"xGF))%\"yG\"\"$F)F)*&F(F)F,F)F)*&F(F))F*F-F)F) F-,**(\"#5F))F*F(F))F,F(F)F)*&F(F)F*F)!\"\"*&F(F))F,\"\"&F)F7*(F(F))F* F:F)F,F)F7!\"#" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 72 "We have that C( x,y)/(f14) is a Galois extension of C(g) with group G168." }}{PARA 0 " " 0 "" {TEXT -1 199 "Also, the field generated by g and x is the whole field C(x,y)/(f14), i.e., x has degree 168 over C(g), and so has y. T heir minpolys over C(g) are the following, where c is a variable repre senting g." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "Rx := resulta nt(numer(g-c), f14, y):\nRy := resultant(numer(g-c), f14, x):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 197 "Now we have this cover C(c) subse t C(c,x) = C(x,y)/(f14) (where the variable c refers to g). We hav e branchpoints at c=0 and c=infinity, but there should be 3 more branc hpoints. Where are they?" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 27 "Wher e are the branchpoints?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 532 "test := proc(i)\n global c, Rx,p,x;\n local f,j;\n f := subs(c=i,Rx) mod p;\n \+ f := Sqrfree(f) mod p;\n f := igcd(seq(j[2],j=f[2]));\n \+ if f>1 then lprint(ram=f, at=i) fi;\n f\nend:\n\np := 120;\nV \+ := NULL;\nP := NULL;\nwhile f<>f_old or f=FAIL do\n p := nextpr ime(p);\n res := [seq(`if`(test(i)>1,i,NULL),i=1..p-1)];\n \+ if nops(res)<>3 then next fi;\n V := V,expand(mul(x-i,i=res) );\n P := P,p;\n\011f_old := f;\n f := iratrecon(chrem([ V],[P]), convert([P],`*`));\nod;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"pG\"$?\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"VG6\"" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%\"PG6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"pG\"$F\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$resG7\"" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%\"pG\"$J\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%$resG7\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"$P\"" }}{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 61" }}{PARA 6 "" 1 "" {TEXT -1 16 " ram = 2, at = 74" }}{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 92" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%$resG7%\"#h\"#u\"##*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"VG,**$)%\"xG\"\"$\"\"\"F**&\"$F#F*)F(\"\"#F*! \"\"*&\"&Mp\"F*F(F*F*\"')G:%F/" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\" PG\"$P\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&f_oldG%\"fG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG%%FAILG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"$R\"" }}{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 22" } }{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 76" }}{PARA 6 "" 1 "" {TEXT -1 17 "ram = 2, at = 132" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$r esG7%\"#A\"#w\"$K\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"VG6$,**$)% \"xG\"\"$\"\"\"F+*&\"$F#F+)F)\"\"#F+!\"\"*&\"&Mp\"F+F)F+F+\"')G:%F0,*F 'F+*&\"$I#F+F.F+F0*&\"&3Y\"F+F)F+F+\"'/2AF0" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"PG6$\"$P\"\"$R\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%&f_oldG%%FAILG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,*#\"#F\"\" %!\"\"*&#\"#$*\"##)\"\"\"%\"xGF.F.*&#\"#V\"\"#F.*$)F/F3F.F.F)*$)F/\"\" $F.F." }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"$\\\"" }}{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 21" }}{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 77" }}{PARA 6 "" 1 "" {TEXT -1 17 "ram = 2, at = 147" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%$resG7%\"#@\"#x\"$Z\"" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%\"VG6%,**$)%\"xG\"\"$\"\"\"F+*&\"$F#F+)F)\"\"# F+!\"\"*&\"&Mp\"F+F)F+F+\"')G:%F0,*F'F+*&\"$I#F+F.F+F0*&\"&3Y\"F+F)F+F +\"'/2AF0,*F'F+*&\"$X#F+F.F+F0*&\"&Bg\"F+F)F+F+\"'*pP#F0" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%\"PG6%\"$P\"\"$R\"\"$\\\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&f_oldG,*#\"#F\"\"%!\"\"*&#\"#$*\"##)\"\"\"%\"xGF.F.* &#\"#V\"\"#F.*$)F/F3F.F.F)*$)F/\"\"$F.F." }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,*#\"#F\"\"%!\"\"*&#\"$p%F(\"\"\"%\"xGF-F-*&#\"#V\"\"#F-*$ )F.F2F-F-F)*$)F.\"\"$F-F-" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"$ ^\"" }}{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 38" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$resG7#\"#Q" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"pG\"$d\"" }}{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 26" }}{PARA 6 "" 1 "" {TEXT -1 16 "ram = 2, at = 83" }}{PARA 6 "" 1 "" {TEXT -1 17 "ram = 2, at = 148" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$resG7%\"#E \"#$)\"$[\"" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"VG6&,**$)%\"xG\"\"$ \"\"\"F+*&\"$F#F+)F)\"\"#F+!\"\"*&\"&Mp\"F+F)F+F+\"')G:%F0,*F'F+*&\"$I #F+F.F+F0*&\"&3Y\"F+F)F+F+\"'/2AF0,*F'F+*&\"$X#F+F.F+F0*&\"&Bg\"F+F)F+ F+\"'*pP#F0,*F'F+*&\"$d#F+F.F+F0*&\"&!H=F+F)F+F+\"'%Q>$F0" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"PG6&\"$P\"\"$R\"\"$\\\"\"$d\"" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%&f_oldG,*#\"#F\"\"%!\"\"*&#\"$p%F(\"\"\"%\"xGF -F-*&#\"#V\"\"#F-*$)F.F2F-F-F)*$)F.\"\"$F-F-" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,*#\"#F\"\"%!\"\"*&#\"$p%F(\"\"\"%\"xGF-F-*&#\"#V \"\"#F-*$)F.F2F-F-F)*$)F.\"\"$F-F-" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "f := -27/4+469/4*x+x^3-43/2*x^2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,*#\"#F\"\"%!\"\"*&#\"$p%F(\"\"\"%\"xGF-F-*&#\"#V \"\"#F-*$)F.F2F-F-F)*$)F.\"\"$F-F-" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 236 "The branchpoints of index 2 are at the roots of f. Note that t his information can speed up the method below, but it is not really ne cessary for the method below (instead, one could simply lift the local expansions a little bit further)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 70 "First, lets pick a point on the curve whe re we'll do local expansions." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "subs(x=3, y=300, f14);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"DOzT IaV0xGk#>u\"z9Hy%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 204 "Now in char acteristic 0, the point [x,y] = [3,300] is not on the curve since the \+ above number is not zero in characteristic 0. But the above number is \+ zero in characteristic p, where we find p as follows:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "ifactors(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\"\"7%7$\"\"#\"\"%7$\"#HF$7$\"B\\$z\\L?!*oi=&o;g+3. \"F$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "p := max(seq(i[1],i =%[2]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"B\\$z\\L?!*oi=&o;g +3.\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 81 "The value of g (represen ted by c) at this point [3,300] (in characteristic p) is:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "c0 := subs(x=3,y=300,g) mod p;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#c0G\"A![CWyhv&e\"=1bJ[B*R" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 49 "The local expansions mod (local pa rameter)^1 are:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "xv := 3; yv := 300;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#xvG\"\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#yvG\"$+$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 105 "The current accuracy (the power of the local parameter m odulo which the expansions xv,yv are correct) is:" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 9 "acc := 1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%$accG\"\"\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 126 "The local param eter in C(c) is denoted by cc. If we express c in terms of this local parameter cc then that looks as follows:" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 12 "cv := cc+c0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%# cvG,&%#ccG\"\"\"\"A![CWyhv&e\"=1bJ[B*RF'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 169 "So if we want to represent everything in terms of the lo cal parameter, which is denoted by the variable cc, where cc refers to c-c0, then we have to substitute cv for c." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 83 "The following procedure lifts t he accuracy of the expansion, we'll run it 40 times." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 375 "su := proc(f,x,y,yv,acc)\n local \+ S,pr,i,j;\n global p;\n S := coeff(f,y,0);\n pr : = 1;\n for i to degree(f,y) do\n pr := Expand(pr *yv) mod p;\n pr := add(coeff(pr,x,j)*x^j, j=0..acc-1); \n S := S + pr*coeff(f,y,i)\n od;\n pr := Expand(S) mod p;\n add(coeff(pr,x,j)*x^j, j=0..acc-1)\nend:" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 108 "Express the minpolys of x and y over C(c) as minpolys over C(cc) where cc is the local parameter cc = \"c-c0\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "Rxc := Expand( subs(c=cv, Rx)) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "R yc := Expand(subs(c=cv, Ry)) mod p:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 35 "Lift 40 times (this takes a while)." }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 322 "for i to 40 do\nlprint(acc);\nxv := xv + ux*cc^acc ;\nyv := yv + uy*cc^acc;\n\nsu(Rxc, cc, x, xv, acc+1);\ncollect( coeff (%,cc,acc), ux);\nxv := subs(ux = -coeff(%,ux,0)/coeff(%,ux,1) mod p, \+ xv);\n\nsu(Ryc, cc, y, yv, acc+1);\ncollect( coeff(%,cc,acc), uy);\nyv := subs(uy = -coeff(%,uy,0)/coeff(%,uy,1) mod p, yv);\nacc := acc+1; \nod:\n" }}{PARA 6 "" 1 "" {TEXT -1 1 "1" }}{PARA 6 "" 1 "" {TEXT -1 1 "2" }}{PARA 6 "" 1 "" {TEXT -1 1 "3" }}{PARA 6 "" 1 "" {TEXT -1 1 "4 " }}{PARA 6 "" 1 "" {TEXT -1 1 "5" }}{PARA 6 "" 1 "" {TEXT -1 1 "6" }} {PARA 6 "" 1 "" {TEXT -1 1 "7" }}{PARA 6 "" 1 "" {TEXT -1 1 "8" }} {PARA 6 "" 1 "" {TEXT -1 1 "9" }}{PARA 6 "" 1 "" {TEXT -1 2 "10" }} {PARA 6 "" 1 "" {TEXT -1 2 "11" }}{PARA 6 "" 1 "" {TEXT -1 2 "12" }} {PARA 6 "" 1 "" {TEXT -1 2 "13" }}{PARA 6 "" 1 "" {TEXT -1 2 "14" }} {PARA 6 "" 1 "" {TEXT -1 2 "15" }}{PARA 6 "" 1 "" {TEXT -1 2 "16" }} {PARA 6 "" 1 "" {TEXT -1 2 "17" }}{PARA 6 "" 1 "" {TEXT -1 2 "18" }} {PARA 6 "" 1 "" {TEXT -1 2 "19" }}{PARA 6 "" 1 "" {TEXT -1 2 "20" }} {PARA 6 "" 1 "" {TEXT -1 2 "21" }}{PARA 6 "" 1 "" {TEXT -1 2 "22" }} {PARA 6 "" 1 "" {TEXT -1 2 "23" }}{PARA 6 "" 1 "" {TEXT -1 2 "24" }} {PARA 6 "" 1 "" {TEXT -1 2 "25" }}{PARA 6 "" 1 "" {TEXT -1 2 "26" }} {PARA 6 "" 1 "" {TEXT -1 2 "27" }}{PARA 6 "" 1 "" {TEXT -1 2 "28" }} {PARA 6 "" 1 "" {TEXT -1 2 "29" }}{PARA 6 "" 1 "" {TEXT -1 2 "30" }} {PARA 6 "" 1 "" {TEXT -1 2 "31" }}{PARA 6 "" 1 "" {TEXT -1 2 "32" }} {PARA 6 "" 1 "" {TEXT -1 2 "33" }}{PARA 6 "" 1 "" {TEXT -1 2 "34" }} {PARA 6 "" 1 "" {TEXT -1 2 "35" }}{PARA 6 "" 1 "" {TEXT -1 2 "36" }} {PARA 6 "" 1 "" {TEXT -1 2 "37" }}{PARA 6 "" 1 "" {TEXT -1 2 "38" }} {PARA 6 "" 1 "" {TEXT -1 2 "39" }}{PARA 6 "" 1 "" {TEXT -1 2 "40" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "c1 := 'c1'; c2 := 'c2';" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#c1GF$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#c2GF$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 228 "Now construct \+ an operator in C(cc)[D] with solutions x,y,1 (in homogeneous coordinat es that's: x/z, y/z, z/z). Since 1 is a solution, the term Dx^0 is not present, and the terms Dx^1 and Dx^2 have unknown coefficients c1 and c2." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "L := Dx^3 + c2*Dx^2 + c1*Dx; # No Dx^0 term." }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG,(* $)%#DxG\"\"$\"\"\"F**&%#c2GF*)F(\"\"#F*F**&%#c1GF*F(F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "add(coeff(L,Dx,i) * diff(xv, [cc$i] ), i=0..3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "add(coeff(L, Dx,i) * diff(yv, [cc$i]), i=0..3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "solve(\{%,%%\},\{c1,c2\}) mod p:" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 10 "assign(%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "c1 := convert(series(c1, cc, acc-3), polynom) mod p: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "c2 := convert(series(c2 , cc, acc-3), polynom) mod p:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 127 "Our differential field is C(cc). So we have to tell Maple in the vari able _Envdiffopdomain that cc is our independent variable:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "with(DEtools): _Envdiffopdomain := \+ [Dx,cc]:" }}{PARA 7 "" 1 "" {TEXT -1 45 "Warning, the name adjoint has been redefined\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 128 "Now cc = c- c0 so later we'll have to make a substitution like cc = SomeVariable - c0, but that will be a little while from here." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 314 "Our current L is not can onical because we had x/z, y/z, z/z as solutions, and choosing to divi de x,y,z by z is not canonical. We'll have to divide by something that is canonical, and the easiest way to do that is to make the Wronskian a constant by clearing the Dx^2 term, which is done with the followin g command:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "symmetric_pro duct(L, Dx-coeff(L,Dx,2)/3) mod p:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 143 "Now remove the terms that are not accurate (xv,yv are accurate mod cc^acc, and we've differentiated 3 times, so the current accuracy is acc-3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Rem(%, cc^(a cc-3), cc) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "L := s ort(collect(%,Dx),Dx):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 112 "We kno w that x^2*f^2 will have to be a factor of the denominator. We'll mult iply it away, and later put it back." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "Rem(coeff(L,Dx,1)*subs(x=cv, x^2*f^2), cc^(acc-3), cc ) mod p:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 80 "Here we find equation s for: pow_series * ansatz_denominator = ansatz_numerator." }}{PARA 0 "" 0 "" {TEXT -1 73 "By solving these equations, we write pow_series as numerator/denominator." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "Rem(add(co1[i]*cc^i,i=0..10)*% - add(co2[i]*cc^i,i=0..20),cc^(11+2 0),cc) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "solve(\{co effs(%,cc)\}) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "sub s(%, 1/add(co1[i]*cc^i,i=0..10)*add(co2[i]*cc^i,i=0..20)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "indets(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$%#ccG&%$co2G6#\"#;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "cL1 := Normal(%%) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$cL1G*&,<*&\"AA2]\"F))F+\"#5 F)F)*&\"A')z4T#=-Iy<#y*[kn7#F))F+\"\"*F)F)*&\"AJ:V&>Y%[Cv\\h$)\\wW^F)) F+\"\")F)F)*&\"A^L]U=\">Vn['z&*=H$f(F))F+\"\"(F)F)*&\"@Q@ct$yn%G%>yTmP eGF))F+\"\"'F)F)*&\"AN*4d%o&3%)RC0kBFG-'F))F+\"\"&F)F)*&\"A\"fG:!yg))> -AR#3w(eOF))F+\"\"%F)F)*&\"AU%46h-\"\\xrt_s18^$*F))F+\"\"$F)F)*&\"A(p \"y&GZvODQ'p/r!))\\'F))F+\"\"#F)F)*&\"B4$>gi^&>\"H\"zyu*G,?5F)F+F)F)\" AfIQ,J+Gda*ydmDOJ#F)F),0*$FCF)F)*&\"ABIL?^eRa8!QQOz]\"fF)FGF)F)*&\"Ao& =8cz#>Cbip:Q&GK#F)FKF)F)*&\"AvnVYlg>lMpUf%4kl'F)FOF)F)*&\"AdcKvYf2uWe \"zy[QO(F)FSF)F)*&\"BBn5=v!o4J))o&op)[55F)F+F)F)\"A**H3*pX1VBo?3Bd>k$F )!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "Factor(denom(%)) \+ mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*&),(*$)%#ccG\"\"#\"\"\"F**& \"Aa!zH`PAh\\'G%R>W.E$F*F(F*F*\"@^?y'*G=,g$eL0YAE()F*F)F*),&F(F*\"AKrn %>l?X\\t=j\\)>^[F*F)F*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 256 "Since \+ we removed the known denominator x^2 * f^2, the above remaining denomi nator must be apparant singularities. So we see that there are 3 appar ant singularities because we have a (degree 3 poly)^2 in the denominat or that is not coming from branchpoints." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 75 "Lets do what we did for the Dx^1 c oefficient also for the Dx^0 coefficient:" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 61 "Rem(coeff(L,Dx,0)*subs(x=cv, x^3*f^3), cc^(acc-3), \+ cc) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "Rem(add(co1[i ]*cc^i,i=0..9)*% - add(co2[i]*cc^i,i=0..24),cc^(10+24),cc) mod p:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "solve(\{coeffs(%,cc)\}) mod \+ p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "subs(%, 1/add(co1[i]* cc^i,i=0..9)*add(co2[i]*cc^i,i=0..24)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "indets(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$%#ccG &%$co2G6#\"#6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "cL0 := Nor mal(%%) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$cL0G*&,H*&\"AF'3G J\">aUs%G\"G6vK>\"\"\")%#ccG\"#=F)F)*&\"A6i'QyO&)[f3`'oMG#)pF))F+\"#G&F))F+\"#7F)F)*&\"A)>Vg0\\SBi`llt\"RM;F)) F+\"#6F)F)*&\"A3u)*GK*ycMwlxch$G&*F))F+\"#5F)F)*&\"A<*R/MIQouufO)Hwb=F ))F+\"\"*F)F)*&\"Af2x!yfPL>3_+5\"*RLbEN] Jk*=/cF))F+\"\"&F)F)*&\"AQ]&RTz+fuH&zOB^!e(F))F+\"\"%F)F)*&\"@f)HFx8_: (=H&)\\(e(pZ9X$4RF$f6VF))F+\"\"#F)F)*&\"A7 DMk27_'Q)oJ\"ReYg(F)F+F)F)\"A=R_Fyb?S)egaNT,\">F)F),6*$FOF)F)*&\"Ag)4I ^n[\"=FWTPgh=PF)FSF)F)*&\"AwB))yrcJ1#[os\")zn`&F)FWF)F)*&\"AHtr#4b0\"F)F eoF)F)*&\"AO`9([Cr^(o/-v_f'z(F)F+F)F)\"AJB)Gc,H&*R>%>YG=*Q*F)!\"\"" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "Factor(denom(%)) mod p;" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#*&),(*$)%#ccG\"\"#\"\"\"F**&\"Aa!zH`PA h\\'G%R>W.E$F*F(F*F*\"@^?y'*G=,g$eL0YAE()F*\"\"$F*),&F(F*\"AKrn%>l?X\\ t=j\\)>^[F*F.F*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 56 "Here we found \+ the same apparant singularities as before." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 99 "Now lets put back that factor x ^3*f^3 that we removed from the denominator of the Dx^0 coefficient:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "cL0 := cL0/subs(x=cv, x^3 *f^3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "cL0 := Normal(sub s(cc=x-c0, cL0)) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " Factor(denom(%)) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*,)%\"xG\" \"$\"\"\"),&F%F'\"@_ED5M]%fLb73=])e)F'F&F'),(*$)F%\"\"#F'F'*&\"Ac@`O(* *Q#[.IUlHy;%)F'F%F'F'\"A2Z:]jc)y-neY\"**G.*)F'F&F'),(F-F'*&\"AV%4\"*HM he!)o:'zNl$e&F'F%F'F'\"Ay*>p$eBuCRv6U:.`NF'F&F'),&F%F'\"AYo$fwI'4#fx/' fgAXqF'F&F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 99 "Now lets put back \+ that factor x^2*f^2 that we removed from the denominator of the Dx^1 c oefficient:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "cL1 := cL1/s ubs(x=cv, x^2*f^2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "cL1 \+ := Normal(subs(cc=x-c0, cL1)) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "Factor(denom(%)) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*,)%\"xG\"\"#\"\"\"),&F%F'\"@_ED5M]%fLb73=])e)F'F&F'),(*$F$F'F'* &\"Ac@`O(**Q#[.IUlHy;%)F'F%F'F'\"A2Z:]jc)y-neY\"**G.*)F'F&F'),(F-F'*& \"AV%4\"*HMhe!)o:'zNl$e&F'F%F'F'\"Ay*>p$eBuCRv6U:.`NF'F&F'),&F%F'\"AYo $fwI'4#fx/'fgAXqF'F&F'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "Lp := Dx^3 + cL1*Dx + cL0:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "denom(cL0);" }}{PARA 12 " " 1 "" {XPPMATH 20 "6#*&)%\"xG\"\"$\"\"\",H*&\"AM!)*=W=kfR\"p6,RvAaF') F%\"#7F'F'*&\"A$=ANoGPl4BvWX=3h&F')F%\"#8F'F'*&\"A[R#>g^\"3$*>H6:W$p% \\F')F%\"#9F'F'*&\"A`hbKl0\"Q`(QTUeNlCF')F%\"#:F'F'*&\"A/'\\DX+J8GE:=! e!on#F')F%\"\"'F'F'*&\"B5F')F%\"\"(F'F'*&\"B'>Jlx))*> tt)3__X_25F')F%\"\")F'F'*&\"Ao2aghw>a/#\\\"eP%R1(F')F%\"\"*F'F'\"A.@>& >O()Gfnxq*G*)yMF'*&\"AQ6=U\"*['>VGm26qD<(F')F%\"\"#F'F'*&\"Ae_a3XqKiB$ R#yA2*G'F')F%\"\"%F'F'*&\"A=()zV#ooi%3D!R`$oGIF')F%\"#6F'F'*&\"AkcA*o% >()3[_@?9iguF')F%\"#5F'F'*&\"?1OfzIv-tR\"[Zfu&))F')F%\"\"&F'F'*$)F%\"# =F'F'*&\"AZ*y&Hk&[w3=O)\\7c,))F'F%F'F'*&\"AYpiTo$okGnqPuq@w$F'F$F'F'*& \"AAj(eZ,J>&4RS5CXwgF')F%\"#;F'F'*&\"A(> " 0 "" {MPLTEXT 1 0 12 "lcoeff(%,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "sort(collect(Normal(%%*Lp) mod p,Dx),Dx);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,L*&,H*&\"AM!)*=W=kfR\"p6,RvAa\"\"\")%\"xG\" #:F(F(*&\"A$=ANoGPl4BvWX=3h&F()F*\"#;F(F(*&\"A[R#>g^\"3$*>H6:W$p%\\F() F*\"#5F()F*\"#5F(F(*&\"B'>Jlx))*>tt)3__ X_25F()F*\"#6F(F(*&\"Ao2aghw>a/#\\\"eP%R1(F()F*\"#7F(F(*&\"A.@>&>O()Gf nxq*G*)yMF()F*\"\"$F(F(*&\"AQ6=U\"*['>VGm26qD<(F()F*\"\"&F(F(*&\"Ae_a3 XqKiB$R#yA2*G'F()F*\"\"(F(F(*&\"A=()zV#ooi%3D!R`$oGIF()F*\"#9F(F(*&\"A kcA*o%>()3[_@?9iguF()F*\"#8F(F(*&\"?1OfzIv-tR\"[Zfu&))F()F*\"\")F(F(*$ )F*\"#@F(F(*&\"AZ*y&Hk&[w3=O)\\7c,))F()F*\"\"%F(F(*&\"AYpiTo$okGnqPuq@ w$F()F*\"\"'F(F(*&\"AAj(eZ,J>&4RS5CXwgF()F*\"#>F(F(*&\"A(>+r>F(FVF(F(*&\"A))))=Fi,;Y^*)>'\\A-%fEU\\'F(FhnF(F(*&\"Ak@B3XF?l3:5. q')*\\(F(F)F(F(*&\"A%4MoFzSk\"Qdh84a96F(FcoF(F(*&\"A0&*)>Woso:u5'\\!yo %fF(FJF(F(*&\"A(f#Gp'4G)G&fVB'o:XcF(FFF(F(*&\"AdvQ%4)p\\@z%Qm!)4gB'F(F NF(F(*&\"Ajjea@yA%[ip6[4\\)F(F>F(F(F(F^pF(F(*&\"AS=ht^8`&=5Cn]`&yqF(F*F(F(\"A83. ')plyf?#HN3ZEF(F)F(F(*&\"AW$G&e-$>2S'HPJ!QO l$F(F.F(F(*&\"AoQ<^&\\r>#F(F2F(F(*&\"AF'3GJ\">aUs%G\"G6vK>F(F6 F(F(*&\"A@+9y'o%)RJ'3Tt3=!G$F(F:F(F(*&\"AFb&4!ya%zYkM`?w,Y&F(F>F(F(*& \"AX6?KPY2w'['f5AEX`F(FBF(F(*&\"A.\")oe>m\")>b&eXO0qh&F(FipF(F(*&\"Am^ FjN>_kl\\]A1We@F(FFF(F(*&\"A5Q!=1P19dr2$y!42\">F(FJF(F(*&\"A!\\P3Wl\\V cx8QmrD>\"F(FNF(F(*&\"A%)>()o:6M&fm24TlUM'F(FRF(F(*&\"A^[hA1y?hQ.FGT.N YF(FVF(F(*&\"A23g/:!R$Q[j]J8:YWF(FZF(F(*&\"A>Tb#f>F!G^p!Gx@0Z)F(FhnF(F (*&\"A;$oNAUXx`*zyD]\"4s&F(F_oF(F(*&\"AQF'z$4S!G^naHtkK?*F(FcoF(F(" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "Lp := %:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "lcoeff(lcoeff(Lp,Dx),x);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " Sqrfree(lcoeff(Lp,Dx)) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7$\" \"\"7#7$,0*$)%\"xG\"\"(F$F$*&\"A*Rs=aFh$G[c3_2])G\"F$)F*\"\"'F$F$*&\"A f()z\\,6A(*oR2/hz76F$)F*\"\"&F$F$*&\"@WdLk#yI,pb_g\"4n!zF$)F*\"\"%F$F$ *&\"BbjFOu,qrRKo3>sy-\"F$)F*\"\"$F$F$*&\"AKUb:N%)HgYkcGan@&)F$)F*\"\"# F$F$*&\"?W'z')*G+>bY>+3TGHF$F*F$F$F;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "iratrecon(%[2][1][1],p);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,0*&#\"'R`D\"$_$\"\"\"%\"xGF(F(*&#\"(&*3!RF'F(*$)F)\"\" #F(F(!\"\"*&#\"(RXZ)F'F(*$)F)\"\"$F(F(F0*&#\"&Zg#\"$w\"F(*$)F)\"\"&F(F (F0*$)F)\"\"(F(F(*&#\"(l%R " 0 "" {MPLTEXT 1 0 17 "den := factor( %);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$denG,$**\"$_$!\"\"%\"xG\"\" \",**&\"#))F*)F)\"\"$F*F**&\"$l\"F*)F)\"\"#F*F**&\"&%z>F*F)F*F(\"%d%*F (F*,**&\"\"%F*F.F*F**&\"#')F*F2F*F(*&\"$p%F*F)F*F*\"#FF(F*F*" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 288 "p is not large enough to recover \+ the other coefficients, on some coefficients iratrecon fails. That's u nfortunate, it means we have to do everything over again for another p rime, and then combine the information of the old and the new prime us ing Chinese remaindering (the chrem command)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 38 "First, lets store the old information:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "oldp := p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "oldLp := Lp:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 74 " Now we'll take a different point on the curve, modulo a different prim e p." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "subs(x=3, y=3000, f 14);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"RO$y?LQ/#)pJA0`]ErV.IzX*oHy% " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "ifactors(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\"\"7%7$\"\"#\"\")7$\"#HF$7$\"N*)\\@*e'[ " 0 "" {MPLTEXT 1 0 27 "p := max(seq(i[1],i=%[2]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"N*) \\@*e'[ " 0 "" {MPLTEXT 1 0 31 "c0 := subs(x=3,y=3000,g) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% #c0G\"N!Hof)3\"zhL>d)e@dHr8g25/q&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "xv := 3; yv := 3000;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#xvG\"\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#yvG\"%+I" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "acc := 1;" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%$accG\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "cv := cc+c0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#cvG,&%#ccG \"\"\"\"N!Hof)3\"zhL>d)e@dHr8g25/q&F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 343 "for i to 40 do\nlprint(acc);\nxv := xv + ux*cc^acc; \nyv := yv + uy*cc^acc;\n\nsu(subs(c=cv, Rx), cc, x, xv, acc+1);\ncoll ect( coeff(%,cc,acc), ux);\nxv := subs(ux = -coeff(%,ux,0)/coeff(%,ux, 1) mod p, xv);\n\nsu(subs(c=cv,Ry), cc, y, yv, acc+1);\ncollect( coeff (%,cc,acc), uy);\nyv := subs(uy = -coeff(%,uy,0)/coeff(%,uy,1) mod p, \+ yv);\nacc := acc+1;\nod:\n" }}{PARA 6 "" 1 "" {TEXT -1 1 "1" }}{PARA 6 "" 1 "" {TEXT -1 1 "2" }}{PARA 6 "" 1 "" {TEXT -1 1 "3" }}{PARA 6 " " 1 "" {TEXT -1 1 "4" }}{PARA 6 "" 1 "" {TEXT -1 1 "5" }}{PARA 6 "" 1 "" {TEXT -1 1 "6" }}{PARA 6 "" 1 "" {TEXT -1 1 "7" }}{PARA 6 "" 1 "" {TEXT -1 1 "8" }}{PARA 6 "" 1 "" {TEXT -1 1 "9" }}{PARA 6 "" 1 "" {TEXT -1 2 "10" }}{PARA 6 "" 1 "" {TEXT -1 2 "11" }}{PARA 6 "" 1 "" {TEXT -1 2 "12" }}{PARA 6 "" 1 "" {TEXT -1 2 "13" }}{PARA 6 "" 1 "" {TEXT -1 2 "14" }}{PARA 6 "" 1 "" {TEXT -1 2 "15" }}{PARA 6 "" 1 "" {TEXT -1 2 "16" }}{PARA 6 "" 1 "" {TEXT -1 2 "17" }}{PARA 6 "" 1 "" {TEXT -1 2 "18" }}{PARA 6 "" 1 "" {TEXT -1 2 "19" }}{PARA 6 "" 1 "" {TEXT -1 2 "20" }}{PARA 6 "" 1 "" {TEXT -1 2 "21" }}{PARA 6 "" 1 "" {TEXT -1 2 "22" }}{PARA 6 "" 1 "" {TEXT -1 2 "23" }}{PARA 6 "" 1 "" {TEXT -1 2 "24" }}{PARA 6 "" 1 "" {TEXT -1 2 "25" }}{PARA 6 "" 1 "" {TEXT -1 2 "26" }}{PARA 6 "" 1 "" {TEXT -1 2 "27" }}{PARA 6 "" 1 "" {TEXT -1 2 "28" }}{PARA 6 "" 1 "" {TEXT -1 2 "29" }}{PARA 6 "" 1 "" {TEXT -1 2 "30" }}{PARA 6 "" 1 "" {TEXT -1 2 "31" }}{PARA 6 "" 1 "" {TEXT -1 2 "32" }}{PARA 6 "" 1 "" {TEXT -1 2 "33" }}{PARA 6 "" 1 "" {TEXT -1 2 "34" }}{PARA 6 "" 1 "" {TEXT -1 2 "35" }}{PARA 6 "" 1 "" {TEXT -1 2 "36" }}{PARA 6 "" 1 "" {TEXT -1 2 "37" }}{PARA 6 "" 1 "" {TEXT -1 2 "38" }}{PARA 6 "" 1 "" {TEXT -1 2 "39" }}{PARA 6 "" 1 "" {TEXT -1 2 "40" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "c1 := 'c1 '; c2 := 'c2';" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#c1GF$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#c2GF$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "L := Dx^3 + c2*Dx^2 + c1*Dx; # No Dx^0 term." }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG,(*$)%#DxG\"\"$\"\"\"F**&%#c2GF* )F(\"\"#F*F**&%#c1GF*F(F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "add(coeff(L,Dx,i) * diff(xv, [cc$i]), i=0..3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "add(coeff(L,Dx,i) * diff(yv, [cc$i]), i=0.. 3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "solve(\{%,%%\},\{c1, c2\}) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "assign(%): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "c1 := convert(series(c1 , cc, acc-3), polynom) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "c2 := convert(series(c2, cc, acc-3), polynom) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "with(DEtools): _Envdiffopdomain := \+ [Dx,cc]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "symmetric_produ ct(L, Dx-coeff(L,Dx,2)/3) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Rem(%, cc^(acc-3), cc) mod p:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 28 "L := sort(collect(%,Dx),Dx):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "Rem(coeff(L,Dx,1)*subs(x=cv, x^2*f^2), cc ^(acc-3), cc) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "Rem (add(co1[i]*cc^i,i=0..10)*% - add(co2[i]*cc^i,i=0..20),cc^(11+20),cc) \+ mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "solve(\{coeffs(%, cc)\}) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "subs(%, 1/ add(co1[i]*cc^i,i=0..10)*add(co2[i]*cc^i,i=0..20)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "indets(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$%#ccG&%$co2G6#\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "cL1 := Normal(%%) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$cL1 G*&,<*&\"N&oH\"fX@Cn=H))*3*yB#HJ?_I8?\"\"\")%#ccG\"#7F)F)*&\"M5Vz^,VD& euHwwQ')fApTwy%\\F))F+\"#6F)F)*&\"N)*3,ZYkrxBDxVZ\")G&eY(\\`dL$F))F+\" #5F)F)*&\"Mo]s%[*p]+*ey$pQsb\\8d)eU>)F))F+\"\"*F)F)*&\"N8$G%Q?rV>o,v5) *GWLq-RG)eJF))F+\"\")F)F)*&\"N*4SjyHD!\\>iv=p-\"[^A#F)F+F)F)\"NVNhHu,5+&3)Hn>w6) few^&yK$F)F),0*$FCF)F)*&\"NY&Qq,/%*\\jzApyQedeK26A+OF)FGF)F)*&\"NLb%*R \"fQ;qEQu7I6\\wTPO:rbF)FKF)F)*&\"M#H5NdAt%fa4[#=q*)p.NG%)33\"F)FOF)F)* &\"M^21/o'on'HZC9&\\8jCs\"[*R[\"F)FSF)F)*&\"N[L\"GtM:$*f-t\"4@%*[h!Q/; ^@\\F)F+F)F)\"N6f*e5:6W\\!R2^-[%f!3w-Q<$RF)!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "Factor(denom(%)) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*(),&%#ccG\"\"\"\"KX+Mab$[-u2p8z$G8Q^E%>^\"F'\"\"#F'),& F&F'\"N'Qh4)3e'G+2K: " 0 "" {MPLTEXT 1 0 61 "Rem(coeff(L,D x,0)*subs(x=cv, x^3*f^3), cc^(acc-3), cc) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "Rem(add(co1[i]*cc^i,i=0..9)*% - add(co2[i]*cc ^i,i=0..23),cc^(10+23),cc) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "solve(\{coeffs(%,cc)\}) mod p:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 60 "subs(%, 1/add(co1[i]*cc^i,i=0..9)*add(co2[i]*c c^i,i=0..23)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "indets(%) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$%#ccG&%$co2G6#\"\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "cL0 := Normal(%%) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$cL0G*&,H*&\"N/`3I?F$z5UUx*fL#H%)o%[r#HW\" \"\")%#ccG\"#=F)F)*&\"N%=n4S:N1%))*Qn&HvWkbB8-f!GF))F+\"#t*p'oHK#*)=ExAF))F+\"#;F)F)*&\"N&*G\\'H\"\\&=PR$z.lRwDHj$z9t TF))F+\"#:F)F)*&\"NSGJ;D'3-y4#>C#\\$))e&RsvF3kF))F+\"#9F)F)*&\"N3V%[*f `M)[ubG\\D^P!\\^0^O6&F))F+\"#8F)F)*&\"N:)>*3w:j7%)fOcNd&F))F+ \"#7F)F)*&\"NL%G*=:'H9b\\U)3!o)=?p2YFR+&F))F+\"#6F)F)*&\"N55e$)>;z;z@* )f<*3O9U.m4X;F))F+\"#5F)F)*&\"NQ%4Pp!G\"3Xc1ToAI#3^<;\")e,&F))F+\"\"*F )F)*&\"NKT[e8=Z[hDGG\"oQ$yjUCT;5&F))F+\"\")F)F)*&\"Nv!4;qaz9`x$3S]!z?` )owUJ%=F))F+\"\"(F)F)*&\"MVp4)3c6VmpHd+p*pv+6NmmkF))F+\"\"'F)F)*&\"NX' 4h[lV:Y5;z&*)*H8XbmNq&z\"F))F+\"\"&F)F)*&\"M=kz-)e@a33-)=-lI)4mh;:G#F) )F+\"\"%F)F)*&\"NUtv1))f#e'[!\\1dtl;V?zq%)HNF))F+\"\"$F)F)*&\"NfOWK%*Q %y\\vh\\K8T8*e\")3uf;%F))F+\"\"#F)F)*&\"Lt&>[;Z(RTCyhZ_tF-K$o8PkF)F+F) F)\"N]=&etSt$os#RC@S\\-,&*=5EOaF)F),6*$FOF)F)*&\"N>ybDg5\\_%>%Q!=eP'y) )4mJ.S&F)FSF)F)*&\"NEKwnxs.Q7aorDmqY%fdxe&>%F)FWF)F)*&\"N/sU!zpd4B*=)[ )e#HW>3R4o7]F)FenF)F)*&\"NA8VWhC9_.8VpB^*zqZAh&o&QF)FinF)F)*&\"N$f\"y% p:TNu))*)*H7g^IuYET9+'F)F]oF)F)*&\"Nyg77P/-&3V/\"Q!G**R!GgV[\\$=F)FaoF )F)*&\"M#*z_v5\"HVe&zM)yaM[FtE.mw)F)FeoF)F)*&\"N$z&3T:?dOL&yjKJ#[_m;1% =#o%F)F+F)F)\"N#>))>LCK\"o\\1%HpD8ng6Jp\\hcF)!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "Factor(denom(%)) mod p;" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#*(),&%#ccG\"\"\"\"KX+Mab$[-u2p8z$G8Q^E%>^\"F'\"\"$F') ,&F&F'\"N'Qh4)3e'G+2K: " 0 "" {MPLTEXT 1 0 31 "cL0 := cL0/ subs(x=cv, x^3*f^3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "cL0 := Normal(subs(cc=x-c0, cL0)) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "Factor(denom(%)) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*0)%\"xG\"\"$\"\"\"),&F%F'\"N^+-Z@!R;dyOu F'F&F'),&F%F'\"MWm$y8K_2a]TTExsHvOaVD`#F'F&F'),&F%F'\"Nnd'*)fD[vsqp-Bw ueQn,\"o.j%F'F&F'),&F%F'\"N&33Uech=k@+.5H\"*R'*)[q,k\"GF'F&F'" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "cL1 := cL1/subs(x=cv, x^2*f^ 2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "cL1 := Normal(subs(c c=x-c0, cL1)) mod p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "Fac tor(denom(%)) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*0)%\"xG\"\"# \"\"\"),&F%F'\"N^+-Z@!R;dyOuF'F&F'),&F%F'\"MWm$ y8K_2a]TTExsHvOaVD`#F'F&F'),&F%F'\"Nnd'*)fD[vsqp-BwueQn,\"o.j%F'F&F'), &F%F'\"N&33Uech=k@+.5H\"*R'*)[q,k\"GF'F&F'" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 26 "Lp := Dx^3 + cL1*Dx + cL0:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "denom(cL0);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#* &)%\"xG\"\"$\"\"\",H*&\"MIIz2\\?%\\f@/;P2_nf0,'>[#)F')F%\"#7F'F'*&\"M$ *>?U1_,jH<*3;\\cUnQDe)>:F')F%\"#8F'F'*&\"Nd\">)*p))3&G@PVTDuZ.mO%f+hBF ')F%\"#9F'F'*&\"N%3;4CB4v+(*[F5!fo)QqmoW#4\"F')F%\"#:F'F'*&\"ND8[I=eXN $Q(QPU\\kFt#og\\wIF')F%\"\"'F'F'*&\"N(=6tf#*z^N91k&>Mf,xI'y'>5$F')F%\" \"(F'F'*&\"N`F')F%\"\"*F'F'\"NP/\"o#f-U_%R_1FxU8I220cD_F'*&\"Nx7j\\p)[ \"Qn?K]5ufv:;WzCB&F')F%\"\"#F'F'*&\"NM0)47%4F?X'47z\"QH1U\"GZB$)fF')F% \"\"%F'F'*&\"NH)>?U\\3(ejawx5=Sw?J@#>U^F')F%\"#6F'F'*&\"Nc25*Rz)p#)pQ( )*3SV&G!y%>!=/HF')F%\"#5F'F'*&\"N*pSp< tH8g_)*)fcyN\"F'F$F'F'*&\"N\"e=dTbpK&pjE?t>gygK0fu,%F')F%\"#;F'F'*&\"N ib&4Zd!pS-&fy!pao]vVEmfT#F')F%\"# " 0 "" {MPLTEXT 1 0 12 "lcoeff(%,x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\" \"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "sort(collect(Normal(% %*Lp) mod p,Dx),Dx);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,L*&,H*&\"MIIz 2\\?%\\f@/;P2_nf0,'>[#)\"\"\")%\"xG\"#:F(F(*&\"M$*>?U1_,jH<*3;\\cUnQDe )>:F()F*\"#;F(F(*&\"Nd\">)*p))3&G@PVTDuZ.mO%f+hBF()F*\"#Mf,xI'y'>5$F()F*\"#5F(F(*&\"N`F()F*\"#7F (F(*&\"NP/\"o#f-U_%R_1FxU8I220cD_F()F*\"\"$F(F(*&\"Nx7j\\p)[\"Qn?K]5uf v:;WzCB&F()F*\"\"&F(F(*&\"NM0)47%4F?X'47z\"QH1U\"GZB$)fF()F*\"\"(F(F(* &\"NH)>?U\\3(ejawx5=Sw?J@#>U^F()F*\"#9F(F(*&\"Nc25*Rz)p#)pQ()*3SV&G!y% >!=/HF()F*\"#8F(F(*&\"N*pSpgygK0fu,%F()F*\"#>F(F(*& \"Nib&4Zd!pS-&fy!pao]vVEmfT#F()F*\"#?F(F(F()%#DxGFKF(F(*&,H*&\"MxE#G@$ pI3XE\\H\"3;#oVgq31uF(F6F(F(*&\"NJF(F _oF(F(*&\"NgoB#RyE8s8k%o8q`8ma9Bq8#F(FFF(F(*&\"N')QLNB(fU]&*)[\"=sseb( 4$\\`IBF(FJF(F(*&\"N3r_S0#RL!*oF(F(*&\"MUxY'\\R4\\#)Gn?6ZI=%)eC\")4i(F( F2F(F(*&\"N$zMIv*)=')H_m>w!fH\\C%*eR)F(FVF(F(F(F^pF(F(*&\"M-z:g6H#Q *ojnT_z9x0q@vTpF(F*F(F(*&\"No4jRU6cq2R0XC?8*HQo7[#o%F(F)F(F(*&\"N)**zf rrGA#\\]x!f![BDoF?vH2&F(F.F(F(*&\"N!*4w5W$G[]O!)\\4QM9rJmdJsRF(F2F(F(* &\"N/`3I?F$z5UUx*fL#H%)o%[r#HWF(F6F(F(*&\"N#>n1'fj.;fS]seg\"4=o')42$\\ #F(F:F(F(*&\"N.TM&4`ZuqRWg.3\\\">o&=lwHeF(F>F(F(*&\"MP@?e^**=\")*4%pm3 -^y>F\"Q`]%F(FBF(F(*&\"Mw%)[r\\'3Xa0>:!pyD@gVk49VF(F_qF(F(*&\"NV]R\\4% =>wypzrT'\\y*Rf!p#*f#F(FFF(F(*&\"NV6(fR$f2!oh*yn2bG>5#)>@J4$F(FJF(F(*& \"N%=F[V0D`i(Q]@R4uwu(*G`>R%F(FNF(F(*&\"NDRG1O'3K6H(3m#z5X2!HF)G1`F(FR F(F(*&\"M&QBcZ0&Q:([oY%Qg&o-(y](H7'F(FVF(F(*&\"N2,L>%>z1[wLz`,_,x+[8Uq WF(FZF(F(*&\"MgN*Gh5@DJ)*H9vL9w-uKtci#F(FhnF(F(*&\"N!fp_Okg*Hn*\\-i>n# *f]]osvUF(F_oF(F(\"M.YA7aN(=\"pk!4;%=$R]#)>.&fOF(*&\"NX(QM\"=x(p))=lO9 owT%G$ouo_GF(FcoF(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "Lp : = %:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "lcoeff(lcoeff(Lp,Dx ),x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 28 "Factor(lcoeff(Lp,Dx)) mod p;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*0)%\"xG\"\"$\"\"\"),&F%F'\"N^+-Z@!R;dyOuF'F&F'),&F%F'\"MWm$y8K_2a]TTExsHvOaVD`#F'F&F'),&F%F'\"Nnd' *)fD[vsqp-BwueQn,\"o.j%F'F&F'),&F%F'\"N&33Uech=k@+.5H\"*R'*)[q,k\"GF'F &F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "iratrecon(%,p);" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#,H*&#\"0hR$)ysAB)\"(wK_yLfZm\"FRF(*$)F+\"\"$F(F(F(*&#\"4@&=+D0A')\\7F'F(*$)F+\"\"&F(F(F(* &#\"5X%zWP=Hr&p5\"(WHO\"F(*$)F+\"\"(F(F(F:*&#\"2\\N#f(p`jA\"F'F(*$)F+ \"#9F(F(F:*&#\"2Dxj5es66'FEF(*$)F+\"#8F(F(F(*&#\"5*\\>e'*ym$z&*[\"())e s#F(*$)F+\"\")F(F(F:*$)F+\"#@F(F(*&#\"3&)G\"*=Ur\"*HwFRF(*$)F+\"\"%F(F (F:*&#\"3bL2@b***f!Q\"(kC)>F(*$)F+\"\"'F(F(F:*&#\"'`3]\"$/(F(*$)F+\"#> F(F(F(*&#\"$r%F[qF(*$)F+\"#?F(F(F:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "factor(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$**\") 3UhV!\"\"%\"xG\"\"$,**&\"#))\"\"\")F'F(F,F,*&\"$l\"F,)F'\"\"#F,F,*&\"& %z>F,F'F,F&\"%d%*F&F(,**&\"\"%F,F-F,F,*&\"#')F,F0F,F&*&\"$p%F,F'F,F,\" #FF&F(F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "normal(%/den^3) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 151 "OK, so for this prime everything worked the same as wi th the other prime. Now lets combine the information of the two primes with Chinese remaindering:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "Lq := chrem(expand([Lp, oldLp]), [p, oldp]);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#LqG,^r*(\"hokBB!429?S*3o%pc$fq$)3tNyo$f;6gV?(p$e\")R Ki#Qx&\"\"\"%#DxGF()%\"xG\"#=F(F(*(\"ho&pRw-1dd=(fS\"G\")pGOw%*GL3P>N* **H\"*H!oyF4+6T3[F(F)F()F+\"#:F(F(*(\"hoE'>C=I\"p]YV,\"=o#[_*prS**>uwD J]['[%4$3/oHQp\"RF(F)F()F+\"#;F(F(*(\"ho6#*\\vBC4.zNn(fm5PZ)GY>ejB2b!) H>6>6)37T'ee;#F(F)F()F+\"#&)*=r82h8K%)=ZNue%HhFQ**48zUI EdqR&)GF(F;F(F*F(F(*(\"ho)4)=$oC`m`!e4DF;M$*H\"H$R]qQ9P7yT,j,&e\\RY'Ru &F(F;F(F/F(F(*(\"ho(>DVv'*QzcrE#G/W?;t]u%GjY.nT[p*p!z`;ZQ`x2JF(F;F(F3F (F(*(\"hogM#)>wc$*)zw/tYmT2*R1d.$>N!\\L4eBbG\"fLs[yio]F(F)F()F+\"\")F( F(*(\"ho5a[x\"))yZPWAElZ\"3e!Q5&=14s'yb\")>@f'\\EOw)e$Q<%F(F)F()F+\"\" %F(F(*(\"hoT!RA'R&)\\?)*=S6E')fxsV,D0Q\">6+TiQF/ITrJq!\\%eF(F)F()F+\" \"'F(F(*(\"how#)eWV/*p]_H!fHU%=OMg`Tg!\\s:d8f>:(R\\*>%R0UTF(F)F()F+Fnq)yq7/,aLWk(f\"4/GE@%)3+_?z/WH]\\;=&F(F)F()F+\"\"&F(F (*(\"hoz$QJz]D@r\"39ig(ok^yo#G:DJ$)oG&*f`i:#y@7,Ib\"z]lF(F)F()F+\"#7F(F(* (\"ho0%QF-EtI!o'HyU(Ga'\\ns0t>n``)[lk=A9*)HY.\")H\"\\F(F;F(FfnF(F(*(\" hoyw6[m7z1x@axB+`5jYX&o*=fCJ(y3EkX`P@#>Ux-$F(F;F()F+\"#5F(F(*(\"ho6!)3SA3f(oWF(F;F()F+\"\"*F(F(*(\"go%**)[&*H')et- E44#3uFh'zp1<]7%>iHg(4UL6@tIVA*>m747j+%3!R$*Q8\\s^\\&*z6 !Q=%=5%F(F/F(F(*&\"hob:NH(oP$[)*e2sYQ9#3OZ&*Gd3MM)y6w$*)HMw(oetSb$F(F3 F(F(*&\"ho93H#4!3Zg\\M1:[Pq8ww\\WKnej^*G%*GVokJ^KKiQkF(F7F(F(*&\"hovd \\r>)R_fYsXV:W)zHHaH5im#*o>C1#H^*yAtp[fA'F(F*F(F(*&\"gob,G1zD&Q+[.6.AUbf)yV%>0`iDs5sr0hfmDF(FQF(F(*&\"gof\"HSmin F+p?J!o'p(4$f#o],4(otJ=]i;!3)z\\gn)zoF(FTF(F(*&\"ho2Ag:ya/rt[De#f#=^9# G%R(Q#e`nYW)fAzI`FT`rEIF(FXF(F(*&\"go82870<5kD()))\\(yp/k2X$yU*QKTxPy. Z^y/2^dEp)F()F+\"#9F(F(*(\"ho()[.(Q/#e=3&4A$G'RmIV0>9^`H]COAIz!QpNdFn/ 5$F(F;F(FIF(F(*(\"hoz<6@uqx4I=eg3lEKi))yuZTtz)He3G$4h>n`L6'pEF(F;F()F+ \"#>F(F(*(\"hoK$Hn];db:IM*Qxy=\"y1SUHY)[mPe#e#RXNgM3X&)3\"eF(F;F()F+\" #?F(F(*(\"hom[QkGU.3$eOC9Zf_'**yQpZSk%\\\"p9f/'R3uUq@*Q?%F(F;F(FMF(F(* &\"hom5eHKd31D)*yC-&49fhVxGp6&4&e&)yss09e,z-wsd-!fk/UQJ^))QM3*R#zyk#)>V;R*zvZd[x!H\"GF(F)F(FdoF(F(*(\"go'QmZY l#oRk\"QcpFc')>'GINZxe#o/00YcFYb7V@,W'Gi%yNAarO'RXyX$[Y^FE\"e aF(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "q := p * oldp;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"qG\"hoh@EOuC#\\.j5-8V+&y\"zX[w&R%) =+\"em[/[v4\"Q%>,Tm" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "Norm al(coeff(Lq,Dx,3)/den^3) mod q;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" \"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "Normal(coeff(Lq,Dx, 2)/den^2) mod q;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 313 "This time iratrecon (which failed on som e coefficients mod the first prime since that prime was not big enough to recover all of the coefficients below) does work on all coefficien ts because q = p*oldp is big enough that \"the below rational numbers \+ mod q\" are enough information to recover those rational numbers:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "iratrecon(Normal(coeff(Lq,Dx ,1)/den^1) mod q, q);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,<#\"+pFAWs\" &)[:\"\"\"*&#\".X,vi#=h\"'K7**F'%\"xGF'!\"\"*&#\")\"3A%>\"$_$F'*$)F,\" \"*F'F'F'*&#\")6Jq<\"&k7\"F'*$)F,\"#5F'F'F-*&#\"%&R%\"$[%F'*$)F,\"#6F' F'F-*&#\"/\\yyQ([^#\"';c\\F'*$)F,\"\"#F'F'F'*&#\"#:\"#;F'*$)F,\"#7F'F' F'*&#\"0v<1[+4V'\"'%yI'F'*$)F,\"\"$F'F'F'*&#\"0f0-5V-D\"F+F'*$)F,\"\"& F'F'F-*&#\"/.%H0$)>k$\"(C'QpF'*$)F,\"\"(F'F'F'*&#\"-6]7oZ>\"'3yCF'*$)F ,\"\")F'F'F-*&#\"/z)*yYs8_\"'/R7F'*$)F,\"\"%F'F'F'*&#\".B+rN%[HFFF'*$) F,\"\"'F'F'F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "iratrecon( Normal(coeff(Lq,Dx,0)/den^0) mod q, q);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,H#\"1\"p8wfK(\\=\"(w#F,*$)F-\"#<$F,*$)F-\"\"$F,F,F,*&#\":(y7rdmfA%ee7%Q\"-_nQx'> \"F,*$)F-\"\"&F,F,F,*&#\"8tb#))y-sh*)ejA\"+%Q#>uUF,*$)F-\"\"(F,F,F'*&# \"18CJ;\"3ww\"\"*_^)*z'F,*$)F-\"#9F,F,F,*&#\"1D\"p5&*Gq/\"\")s!*\\UF,* $)F-\"#8F,F,F'*&#\"8l6BzS!\\0PZ-iF`oF,*$)F-\"\")F,F,F,*&#\"7h-+o=X&[!H ,o\"*7*)f5'F,*$)F-\"\"%F,F,F,*&#\"8BMvUEu=Kzn9$F^pF,*$)F-\"\"'F,F,F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "Lq := collect(Dx^3 + %%/d en^2 * Dx + %/den^3, Dx, factor);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#> %#LqG,(*$)%#DxG\"\"$\"\"\"F**0F)F*\"#c!\"\",<\"./N$R!=3\"F**&\"/0qTYfF 9F*%\"xGF*F-*&\"-C--;w7F*)F2\"\"*F*F**&\"+#zQ]j$F*)F2\"#5F*F-*&\")?**o AF*)F2\"#6F*F-*&\"0i*45ygt6F*)F2\"\"#F*F**&\"(?$o@F*)F2\"#7F*F**&\"1vJ *G%o*zN#F*)F2F)F*F**&\"0rz/!RBF* F2F*F-\"%d%*F-Fhn,**&FYF*FIF*F**&\"#')F*FAF*F-*&\"$p%F*F2F*F*\"#FF-Fhn F(F*F**,\"%)[&F-,H\"5k'*[Jc'*f1@\")F**&\"7&)>*>mMU:s`(HF*F2F*F-*&\"2%) RzQ+'[\")HF*)F2\"#:F*F**&\"0sM^dSju&F*)F2\"#;F*F-*&\".![[`r.TF*)F2\"#< F*F-*&\"-g,5&RC#F*)F2\"#=F*F**&\"70\"zi)p=gkPpzF*F5F*F-*&\"7(R&RA-zKxM gpF*F9F*F**&\"6I$G\"*HitW&pR(F*F=F*F-*&\"8$H#R6lvi;@\\K\"F*FAF*F**&\"4 CvqY*GGYoXF*FEF*F**&\"8Iihz+Ekcas_&F*FIF*F-*&\":ubAaJ$>Xor^#o(F*FLF*F- *&\":)3KU%p0)>A'F*)F2\"#9F*F-*&\"4+?J@C0no *eF*)F2\"#8F*F**&\"9gY#pJ;'>#[*)4[#F*FTF*F-*&\":7B5cA8(Hqe5mEF*FXF*F-* &\"8Yo]&G&[PkeNH'F*FfnF*F*F*F2!\"$FinF\\sFaoF\\sF-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "_Envdiffopdomain := [Dx,x]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "gen_exp(Lq,T,x=infinity);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%7$!\"\"/%\"TG*&\"\"\"F)%\"xGF%7$#!\"$\"\"% F&7$#!\"&F.F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "[op(factor (den*352))];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%%\"xG,**&\"#))\"\"\" )F$\"\"$F(F(*&\"$l\"F()F$\"\"#F(F(*&\"&%z>F(F$F(!\"\"\"%d%*F1,**&\"\"% F(F)F(F(*&\"#')F(F-F(F1*&\"$p%F(F$F(F(\"#FF1" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "sing := map(RootOf,%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%singG7%\"\"!-%'RootOfG6#,**&\"#))\"\"\")%#_ZG\"\"$F- F-*&\"$l\"F-)F/\"\"#F-F-*&\"&%z>F-F/F-!\"\"\"%d%*F7-F(6#,**&\"\"%F-F.F -F-*&\"#')F-F3F-F7*&\"$p%F-F/F-F-\"#FF7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "seq(gen_exp(Lq,T,x=i), i=sing);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6%7%7$#\"\"%\"\"$/%\"TG%\"xG7$#\"\"#F'F(7$\"\"\"F(7#7&#! \"\"F'F,#\"\")F'/F),&F*F/-%'RootOfG6#,**&\"#))F/)%#_ZGF'F/F/*&\"$l\"F/ )F?F-F/F/*&\"&%z>F/F?F/F3\"%d%*F3F37$7%#F/F-#F'F-/F),&F*F/-F96#,**&F&F /F>F/F/*&\"#')F/FBF/F3*&\"$p%F/F?F/F/\"#FF3F37$F/FJ" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "s2, s3 := 88*x^3+165*x^2-19794*x-9457, 4* x^3-86*x^2+469*x-27;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>6$%#s2G%#s3G6 $,**&\"#))\"\"\")%\"xG\"\"$F+F+*&\"$l\"F+)F-\"\"#F+F+*&\"&%z>F+F-F+!\" \"\"%d%*F5,**&\"\"%F+F,F+F+*&\"#')F+F1F+F5*&\"$p%F+F-F+F+\"#FF5" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 184 "You get nicer equations if you ma ke an exponent zero at each finite singularity, which we can do as fol lows: (the factors 1, -1/3, +1/2 below are read off by looking at the \+ exponents):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "L := symmetr ic_product(Lq, Dx+1/x - 1/3 * diff(s2,x)/s2 + 1/2 * diff(s3,x)/s3);" } }{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"LG,**$)%#DxG\"\"$\"\"\"F**0F)F*\" \"#!\"\",0*&\"%c5F*)%\"xG\"\"'F*F**&\"&;F\"F*)F2\"\"&F*F-*&\"'k'R$F*)F 2\"\"%F*F-*&\"(:Th&F*)F2F)F*F**&\")'*4T=F*)F2F,F*F-*&\"):Mf7F*F2F*F-\" 'y1^F*F*F2F-,**&\"#))F*F>F*F**&\"$l\"F*FAF*F**&\"&%z>F*F2F*F-\"%d%*F-F -,**&F;F*F>F*F**&\"#')F*FAF*F-*&\"$p%F*F2F*F*\"#FF-F-F(F,F**0F)F*\"#cF -,0*&\"&W4#F*F1F*F**&\"%#[*F*F6F*F-*&\")FbM7F*F:F*F-*&\"*&Rx17F*F>F*F* *&\"*VJqy\"F*FAF*F-*&\"*:[^f#F*F2F*F-\"(OnB%F*F*F2!\"#FEF-FMF-F(F*F**. \"#LF*\"%)[&F-F2F^o,.*&FaoF*F6F*F**&\"'q$f\"F*F:F*F**&\"(Kw,(F*F>F*F-* &\")vG^LF*FAF*F**&\")5'fL%F*F2F*F*\")0$3g%F-F*FMF-FEF-F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "gen_exp(L,T,x=infinity);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%7$#\"\"\"\"\"#/%\"TG*&F&F&%\"xG!\"\"7$#F& \"\"%F(7$#\"\"$F/F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "seq( gen_exp(L,T,x=i), i=sing);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6%7%7$#\" \"\"\"\"$/%\"TG%\"xG7$#!\"\"F'F(7$\"\"!F(7#7&F/F&F'/F),&F*F&-%'RootOfG 6#,**&\"#))F&)%#_ZGF'F&F&*&\"$l\"F&)F;\"\"#F&F&*&\"&%z>F&F;F&F-\"%d%*F -F-7$7$#F&F?/F),&F*F&-F56#,**&\"\"%F&F:F&F&*&\"#')F&F>F&F-*&\"$p%F&F;F &F&\"#FF-F-7%F/F&FF" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 85 "Indeed, on e exponent 0 at each finite singulary, and indeed, this did make L sma ller." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "lprint(L);" }} {PARA 6 "" 1 "" {TEXT -1 425 "Dx^3+3/2*(1056*x^6-12716*x^5-339664*x^4+ 5614115*x^3-18410996*x^2-12593415*x+510678)/x/(88*x^3+165*x^2-19794*x- 9457)/(4*x^3-86*x^2+469*x-27)*Dx^2+3/56*(20944*x^6-9482*x^5-12345527*x ^4+120677395*x^3-178703143*x^2-259514815*x+4236736)/x^2/(88*x^3+165*x^ 2-19794*x-9457)/(4*x^3-86*x^2+469*x-27)*Dx+33/5488/x^2*(5488*x^5+15937 0*x^4-7017632*x^3+33512875*x^2+43359610*x-46008305)/(4*x^3-86*x^2+469* x-27)/(88*x^3+165*x^2-19794*x-9457)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 427 "Dx^3+3/2*(1056*x^6-12716*x^5-339664*x^4+5614115*x^3- 18410996*x^2-12593415*x+510678)/x/(88*x^3+165*x^2-19794*x-9457)/(4*x^3 -86*x^2+469*x-27)*Dx^2+3/56*(20944*x^6-9482*x^5-12345527*x^4+120677395 *x^3-178703143*x^2-259514815*x+4236736)/(4*x^3-86*x^2+469*x-27)/(88*x^ 3+165*x^2-19794*x-9457)/x^2*Dx+33/5488/x^2*(5488*x^5+159370*x^4-701763 2*x^3+33512875*x^2+43359610*x-46008305)/(4*x^3-86*x^2+469*x-27)/(88*x^ 3+165*x^2-19794*x-9457) ;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,**$)%#Dx G\"\"$\"\"\"F(*0F'F(\"\"#!\"\",0*&\"%c5F()%\"xG\"\"'F(F(*&\"&;F\"F()F0 \"\"&F(F+*&\"'k'R$F()F0\"\"%F(F+*&\"(:Th&F()F0F'F(F(*&\")'*4T=F()F0F*F (F+*&\"):Mf7F(F0F(F+\"'y1^F(F(F0F+,**&\"#))F(FF(F0F(F+\"%d%*F+F+,**&F9F(F " 0 "" {MPLTEXT 1 0 27 " L4 := symmetric_power(L,4):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "diffop2de(L4,y(x)): normal(eval(subs(y(x)=1/x, %)));" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 65 "Th is confirms that L is correct and has indeed Galois group G168." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "152 0 0" 85 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }