{VERSION 6 0 "SUN SPARC SOLARIS" "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 } {CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 261 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 266 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 267 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 270 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 271 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 272 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 276 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 278 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 279 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 281 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 282 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 283 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 284 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 285 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 286 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 287 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 288 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 289 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 290 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 291 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 292 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 293 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 294 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 295 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 296 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 297 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 298 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 299 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 300 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 301 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 302 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 303 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 304 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 305 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 306 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 307 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 308 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 309 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 310 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 311 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 312 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 313 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 314 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 315 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 316 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 317 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 318 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 319 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 320 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 321 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 322 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 323 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 324 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 325 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 326 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 327 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 328 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 329 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 330 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 331 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 332 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 333 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 334 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 335 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 336 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 337 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 338 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 339 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 340 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 341 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 342 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 343 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 344 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 345 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 346 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 347 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 348 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 1 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Headi ng 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 }{PSTYLE "" 2 6 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "M aple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Plot" 0 13 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 256 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 257 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 258 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT 330 16 "Elliptic curves." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 38 "Elliptic curves over the real numbers." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "fx := x*(x-1)*(x-2);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%#fxG*(%\"xG\"\"\",&F&F'F'!\"\"F',&F&F'\"\"#F)F '" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 20 "fx has 3 real roots." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "f := y^2 - fx;" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%\"fG,&*$)%\"yG\"\"#\"\"\"F**(%\"xGF*,&F,F*F*! \"\"F*,&F,F*F)F.F*F." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 105 "Because \+ of the three real roots, the elliptic curve given by the solutions (x, y) of f=0 looks like this:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "with(plots): implicitplot(f,x=-0.5..2.7, y=-3..3);" }}{PARA 13 "" 1 "" {GLPLOT2D 365 365 365 {PLOTDATA 2 "6$-%'CURVESG6bp7$7$$\"31,+++++ +7!#>$!3;(*******f.\"R\"!#=7$$\"3BoS'f,(oa!)!#?$!3=#************>\"F-7 $7$$\"3VtS'f,(oa!)F1F27$F6$!3L=$\\:QDg7\"F-7$7$$\"3bHU'f,(oa!)F1$\"3s2 ++++++7F-F87$7$$\"3HJU'f,(oa!)F1F?7$$\"3CBiv[](f:*F1$\"3#)Ge$yYDLD\"F- 7$7$F($\"3#Q++++O5R\"F-FE7$7$$\"39+++++++9F-$!3()*********\\Fe%F-7$$\" 3T]n0'>iK(zF*$!33#************f$F-7$FTF'7$FK7$$\"3-Eb+f6p+bF*$\"3yrko2 /i$z#F-7$7$$\"3=@o0'>iK(zF*$\"3i2++++++OF-Fen7$F[o7$$\"35hibBom>6F-$\" 3M=?$eqCc7%F-7$7$FP$\"3)4++++]Fe%F-Fao7$FO7$$\"3Cf5'G&p0aCF-$!33yWh'yc jd&F-7$7$$\"3:++++++!o#F-$!3l++++?M*y&F-F[p7$Fgo7$$\"3[ShQ!3!*H!>F-$\" 3d&*fF*f$*o0&F-7$7$Fbp$\"3V)*******>M*y&F-Fgp7$7$$\"3t++++++gRF-$!3s)* ******RCkhF-7$$\"3***o2*)z&**pKF-$!3+#*************fF-7$FfqFap7$F]q7$$ \"3bYV:5(yVx#F-$\"3U21Y=*RI#eF-7$7$$\"3uXhF-7$7$$\"3=++++++gRF-$\"3%4++++W U;'F-Fir7$7$F`sFdq7$$\"39\"H:bXOQ/%F-$!3vi64aL>dhF-7$7$$\"3?++++++S_F- $!3U(*******ffcgF-Ffs7$7$Fbq$\"30-+++SCkhF-7$$\"3uaE<7!)R3_F-$\"3S\"Gw rs`#fgF-7$7$F]t$\"3v++++gfcgF-Fet7$F\\t7$$\"3)HS.(=Zdl_F-$!3$>()ovf_z/ 'F-7$7$$\"3aI\\!=IguS&F-FiqF_u7$Feu7$$\"3%[M-:P=KG'F-$!3r))ocYW.cbF-7$ 7$$\"3C++++++?lF-$!3)=++++)*fV&F-Fiu7$7$F`v$\"3W(*******z*fV&F-7$$\"3z #*[!=IguS&F-Ffr7$FhvF[u7$7$$\"38************>lF-Fbv7$$\"3+oT#\\+M,@(F- $!3Q1GBf7+%*[F-7$7$$\"3E+++++++yF-$!3'))********\\2V%F-F`w7$Fev7$$\"3# HF5\"H#*fPqF-$\"3GY#=aW,&H]F-7$7$Fgw$\"3'**********\\2V%F-F\\x7$Ffw7$$ \"3'\\`\\j.%*G4)F-$!3\"4Pb\"=j<\\TF-7$7$$\"3slrFt$\\Tm)F-FWFfx7$F\\y7$ $\"3OtW3'4j%p))F-$!3'*y$e^IV_?$F-7$7$$\"3H++++++!3*F-$!3$3*******RW+GF -F`y7$7$$\"3S,+++++!3*F-$\"3s*)******RW+GF-7$$\"3S_rFt$\\Tm)F-F^o7$7$$ \"3^`rFt$\\Tm)F-F^oFbx7$Ffy7$$\"3-I2w5&*p&[*F-$!3?fjn#e'og>F-7$7$$\"3d j9D0()>`)*F-F2Fiz7$7$$\"3ok9D0()>`)*F-F27$$\"3Nh9D0()>`)*F-$!3_S[YBdZ( \\#F*7$7$$\"3!eX^_q)>`)*F-$\"3e2++++++7F-Ff[l7$7$$\"3\"pX^_q)>`)*F-F?7 $FgyF_z7$7$$\"3%4++++++1#!#<$!3M4++++v9OF-7$$\"3B&3#\\+\\Gf?Fj\\lFW7$F ]]l7$$\"3h(R!oj!*oe?Fj\\l$!37Hu+W*>ad$F-7$7$$\"3\"*4vS8t5,?Fj\\lF2Fa]l 7$Fg]l7$Fh]l$!39#\\y!RE@w&*F17$7$Fh]lF?F[^l7$F_^l7$$\"3_Ua\"yN5&>?Fj\\ l$\"3Ko/'4z!=f>F-7$7$$\"3o&3#\\+\\Gf?Fj\\lF^oFa^l7$Fg^l7$$\"3g]a46aif? Fj\\l$\"3\\A.'>aBqg$F-7$7$Fh\\l$\"3LC++++v9OF-F[_l7$7$$\"3\\,+++++)=#F j\\l$!3O>+++!)e$*oF-7$$\"3Ma9=\\!\\>9#Fj\\lFiq7$Fj_lFg\\l7$Fa_l7$$\"3@ &o\"H9<%)4@Fj\\l$\"3sH4.dyYl]F-7$7$$\"3za9=\\!\\>9#Fj\\lFfrF_`l7$Fe`l7 $$\"3_:W#ekzX;#Fj\\l$\"3)\\B#zS;8RkF-7$7$$\"3/,+++++)=#Fj\\l$\"3oA+++! )e$*oF-Fi`l7$7$$\"3<,+++++;BFj\\l$!3kE+++IET(*F-7$$\"3&zGXoSBlC#Fj\\l$ !3#>************R)F-7$Fjal7$F`alFh_l7$F_al7$$\"3)[:i-Jf=A#Fj\\l$\"3eAY eKz8lxF-7$7$$\"3R)GXoSBlC#Fj\\l$\"3Y2++++++%)F-Fbbl7$Fhbl7$$\"3Pfk&)\\ [v!G#Fj\\l$\"32;9>ll%31*F-7$7$Ffal$\"3')G+++IET(*F-F^cl7$7$$\"3G,+++++ WCFj\\l$!3I.++g,*oC\"Fj\\l7$$\"34hQPa>4fBFj\\l$!3=************z5Fj\\l7 $F]dl7$$\"3h,+++++;BFj\\lFhal7$Fdcl7$$\"3P.nTN.WSBFj\\l$\"3:%o$4rV'QPa>4fBFj\\l$\"3t++++++!3\"Fj\\lFgdl7$F]el7$$\"3f#>u;8X 0S#Fj\\l$\"3`#*36yyZh6Fj\\l7$7$$\"3s,+++++WCFj\\l$\"3_.++g,*oC\"Fj\\lF cel7$7$$\"3R,+++++sDFj\\l$!3.pmmm7-=:Fj\\l7$$\"3Tf=4]e6uCFj\\l$!3<**** ********>8Fj\\l7$FdflFhcl7$7$FiclF\\fl7$$\"3h#\\Y^$>*4Y#Fj\\l$\"3)*G.g @,9)G\"Fj\\l7$7$$\"3')f=4]e6uCFj\\l$\"3t++++++?8Fj\\lF\\gl7$Fbgl7$$\"3 mZxy\"[*>@DFj\\l$\"3kwzkr4D:9Fj\\l7$7$$\"3%=+++++?d#Fj\\l$\"3Epmmm7-=: Fj\\lFhgl7$7$$\"3],++++++FFj\\l$!3!zG9dGk>z\"Fj\\l7$$\"31vRT$y)=*e#Fj \\l$!3;************f:Fj\\l7$FihlF_fl7$F^hl7$$\"3K#3zTcBz\"Fj\\lF\\j l-%'COLOURG6&%$RGBG\"\"\"\"\"!Fjjl-%+AXESLABELSG6$%\"xG%\"yG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 92 "Here is another example, but now the poly nomial fx has only 1 real root and 2 complex roots:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "fx := 4*x^3-8*x^2+4*x+1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#fxG,**&\"\"%\"\"\")%\"xG\"\"$F(F(*&\"\")F()F*\" \"#F(!\"\"*&F'F(F*F(F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "f := y^2 - fx;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,,*$)%\"yG \"\"#\"\"\"F**&\"\"%F*)%\"xG\"\"$F*!\"\"*&\"\")F*)F.F)F*F**&F,F*F.F*F0 F*F0" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "Now the curve looks like: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "implicitplot(f,x=-0.5.. 2.7, y=-3..3);" }}{PARA 13 "" 1 "" {GLPLOT2D 365 365 365 {PLOTDATA 2 " 6$-%'CURVESG6gq7$7$$!3#*************f6!#=$!3]VWWW%38V'F*7$$!3Mw\\d]IDX 7F*$!3+#*************fF*7$F-7$$!3(>^w@THKF\"F*$!3!>.p@&[p(y&F*7$7$$!3S xoLj8^h:F*$!33#************f$F*F37$F97$$!3;-L(G\"\\5=;F*$!3!*\\DO)G`5u #F*7$7$$!3WFyr>0k>\"F*F?7$FE7$$!3;Fyr>0k>7$7$$!3)o#yr>0k>[\"F*$\"3hq*[2yyO?%F*7$7$$!3)R(\\d]IDX7F*$\"3a2+++++ +gF*Fao7$Fgo7$$!3Y>!oBd+AA\"F*$\"3fW+>tgi;hF*7$7$F($\"3sXWWW%38V'F*F]p 7$7$$\"31,++++++7FP$!3ELLLLpt<5!#<7$$!3Y>y#3\\O************R )F*7$F]qF'7$Fcp7$$!3$HyVV&fTgyFP$\"3]n%R9*z#))p(F*7$7$$!3Unx#3\\O7&H`xl`F P$!3=************z5F\\q7$F_s7$$\"3!4++++++?\"FPFjp7$Ffr7$$\"3I'Q>qypx/ $FP$\"3<(Q$\\;VNX5F\\q7$7$$\"3P9B^H`xl`FP$\"3t++++++!3\"F\\qFis7$7$$\" 31:B^H`xl`FPFbt7$$\"3$oiN_u!zj5F*$\"3u?$o_BRI9\"F\\q7$7$F[s$\"31+++++C $=\"F\\qFht7$Fjr7$$\"3t$zZc`/G;#F*$!3RgRV]e-B7F\\q7$7$$\"3:++++++!o#F* $!3#ommmQ,+D\"F\\qFbu7$F^u7$$\"3$H-)*>4[1(>F*$\"3^r.v#[.I@\"F\\q7$7$Fi u$\"3gmmm'Q,+D\"F\\qF^v7$Fhu7$$\"37ewcE;;#f$F*$!33N9)\\II5D\"F\\q7$7$$ \"3=++++++gRF*$!3pmmmE_W^7F\\qFhv7$Fdv7$$\"3+y[kRM4^IF*$\"31'em+)*>/D \"F\\q7$7$F_w$\"3pmmmE_W^7F\\qFdw7$7$F_w$!3\"pmmmAX9D\"F\\q7$$\"3sGgX; %4dt%F*$!3S/be:bWD7F\\q7$7$$\"3?++++++S_F*$!3!*******RIa37F\\qFax7$Fjw 7$$\"3[)=Fh(4@0WF*$\"3)H:w>%H_O7F\\q7$7$Fhx$\"3!*******RIa37F\\qF]y7$F gx7$$\"3*Q[_jh5sx&F*$!3(**3m0*ps!=\"F\\q7$7$$\"38************>lF*$!3[m mmYjEU6F\\qFgy7$Fcy7$$\"3Wo\"fZ;>71'F*$\"3Scwg19-m6F\\q7$7$$\"3C++++++ ?lF*$\"3rmmmYjEU6F\\qFcz7$7$Fjz$!3rmmmYjEU6F\\q7$$\"3,,\\U]%*>ynF*$!3+ oY&pR7%G6F\\q7$7$$\"3&z-=v8t/o(F*FbsFb[l7$Fh[l7$$\"3'y:9!*)*3&oxF*$!3t `,WNa4u5F\\q7$7$$\"3E+++++++yF*$!3GLLLLL)>2\"F\\qF\\\\l7$7$Fc\\l$\"31L LLLL)>2\"F\\q7$$\"3?+!=v8t/o(F*Fbt7$F[]lFiz7$Fb\\l7$$\"3&**oaRzk6y)F*$ !3#Q]m))RoR-\"F\\q7$7$$\"3=************z!*F*$!3f*******RW$45F\\qF`]l7$ Fh\\l7$$\"3%y=eNhby&yF*$\"3\\SyXs?:p5F\\q7$7$Fg]l$\"3O*******RW$45F\\q F\\^l7$Ff]l7$$\"3')*e\"F\\q7$$ \"3&))[bX?32=\"F\\qFbs7$F_blFj`l7$Ffal7$$\"3&>#z!)*R*yq6F\\q$\"30Z,Ov) ps1\"F\\q7$7$$\"3=!\\bX?32=\"F\\qFbtFdbl7$Fjbl7$$\"3PKE\"Rz?ED\"F\\q$ \"3J:QT6g$Q:\"F\\q7$7$F[bl$\"3%)******z%oU>\"F\\qF^cl7$7$$\"3P++++++?9 F\\q$!3;BAAAA759F\\q7$$\"3;Lq`P?\"3O\"F\\q$!3S************>8F\\q7$7$F^ dl$!3<************>8F\\qFjal7$Fdcl7$$\"31'p4LahfK\"F\\q$\"3G@VH1@Kc7F \\q7$7$$\"3$Q.Pv.73O\"F\\q$\"3t++++++?8F\\qFgdl7$F]el7$$\"3O&R:t3vMR\" F\\q$\"3DNOG6Utp8F\\q7$7$Ficl$\"3;BAAAA759F\\qFcel7$7$$\"3[++++++[:F\\ q$!3o0>w/2v'o\"F\\q7$$\"3\"G0$)fIIW[\"F\\q$!3;************f:F\\q7$7$$ \"3f_I)fIIW[\"F\\qFeflFhcl7$Fiel7$$\"3*QBIB*\\nb9F\\q$\"3s73Q*Q4J\\\"F \\q7$7$$\"3D`I)fIIW[\"F\\q$\"3s++++++g:F\\qF\\gl7$Fbgl7$$\"30j6!pWQ_^ \"F\\q$\"3+@.17zU@;F\\q7$7$F^fl$\"3\"f!>w/2v'o\"F\\qFhgl7$7$$\"3f+++++ +w;F\\q$!3*=+++gqW,#F\\q7$$\"34m2'[&3X)e\"F\\q$!3;*************z\"F\\q 7$FghlF]fl7$F^hl7$$\"3v`$zh7EAd\"F\\q$\"3R8PT8gdaF\\q$!3n!yxx(\\^wFF\\q7$$\"3_Yd#\\:bg#>F\\q$!3z* ***********fFF\\q7$Ff^m7$$\"3\\@sR\"H4k\">F\\q$!3c)yp8Un2t#F\\q7$7$$\" 3XfalSC'o%=F\\q$!3d************>DF\\qF\\_m7$7$$\"3nfalSC'o%=F\\qFe_mFf jl7$7$$\"3\\++++++/=F\\qF^^m7$$\"3i%e70(GVJ=F\\q$\"311*)ynLcoCF\\q7$7$ $\"3MgalSC'o%=F\\q$\"3N,+++++?DF\\qF_`m7$Fe`m7$$\"3kvdI>NSz=F\\q$\"3*G n,8S='=EF\\q7$7$$\"3'puD\\:bg#>F\\q$\"3c,+++++gFF\\qF[am7$Faam7$$\"3uQ ]=22XG>F\\q$\"3Nb!GS#\\lmFF\\q7$7$Fb^m$\"36\"yxx(\\^wFF\\qFgam7$7$$\"3 #4E*HyUs'*>F\\q$!\"$\"\"!Fa^m7$7$$\"3/,+++++K>F\\q$\"3b\"yxx(\\^wFF\\q 7$$\"3=ekG\\j%R(>F\\q$\"3'R*y3&f]8#HF\\q7$7$$\"3Oh#*HyUs'*>F\\q$\"3y,+ +++++IF\\qF]cm-%'COLOURG6&%$RGBG\"\"\"FfbmFfbm-%+AXESLABELSG6$%\"xG%\" yG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 332 "We see that an elliptic curve of the form: f = y^2 - fx where fx is a polynomial in x of degree 3, can have either one or two components over the real numbers. The plot s suggests that one of the components is topologically equivalent to a line and the other (if there is a second component) is topologically \+ equivalent to a circle." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 44 "However: don't forget the point at infinity!" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 343 "The one \+ point at infinity makes that the component that looks like a line, is \+ in fact also topologically equivalent to a circle. So: an elliptic cur ve f=y^2 - polynomial fx in x of degree 3, over the real numbers, is t opologically equivalent to 1 circle or 2 circles, depending on whether fx has 3 real roots, or 1 real root + 2 complex roots." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 58 "We'll continue with \+ the second curve. Here are two points:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "P1 := [0,1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#P1 G7$\"\"!\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "P2 := [1, -1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#P2G7$\"\"\"!\"\"" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 73 "How can you check if P1 = (x=0,y=1 ) is a point on the curve? That's easy:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "subs(x=0, y=1, f);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 13 "OK. Likewise:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "subs(x=1, y=-1, f);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 35 "So P2 is also a point on the curve." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 76 "Remember that over the co mplex numbers, the elliptic curve is equivalent to:" }}{PARA 0 "" 0 " " {TEXT -1 3 " " }{TEXT 256 1 "C" }{TEXT -1 2 "/(" }{TEXT 257 2 "Z \+ " }{TEXT -1 5 "w1 + " }{TEXT 258 2 "Z " }{TEXT -1 3 "w2)" }}{PARA 0 " " 0 "" {TEXT -1 6 "where " }{TEXT 259 1 "C" }{TEXT -1 37 " is the fiel d of complex numbers and " }{TEXT 260 1 "Z" }{TEXT -1 116 " is the set of all integers, and where w1 and w2 are two complex numbers. We saw \+ last week that there was a 1-1 map:" }}{PARA 0 "" 0 "" {TEXT -1 18 " \+ curve < ---> " }{TEXT 261 1 "C" }{TEXT -1 2 "/(" }{TEXT 262 2 "Z " }{TEXT -1 5 "w1 + " }{TEXT 263 2 "Z " }{TEXT -1 3 "w2)" }}{PARA 0 "" 0 "" {TEXT -1 189 "and that this map depended on the choice of a base- point P0 on the curve (the base-point is the starting point for the in tegral). To compute the image of a point P of the curve in the set " }{TEXT 331 1 "C" }{TEXT -1 3 " /(" }{TEXT 264 2 "Z " }{TEXT -1 5 "w1 + " }{TEXT 265 2 "Z " }{TEXT -1 36 "w2) we need to compute the integra l" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "Int( 1/y, x);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#-%$IntG6$*&\"\"\"F'%\"yG!\"\"%\"xG" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 59 "over a path that starts at the ba se-point P0 and ends at P." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 190 "So we need to fix a base-point on the curve, one usually takes the point P0 as the one point at infinity. In homogeneo us coordinates, in other words: coordinates in the projective plane P^ 2(" }{TEXT 266 1 "C" }{TEXT -1 46 "), this point P0 can be denoted as \+ P0=(0:1:0)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 50 "With this choice of base-point, we may now wonder:" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 112 "Suppose we take t wo points on the curve, say P1 and P2, we compute the images Z1 and Z2 of P1 and P2 in the set " }{TEXT 267 1 "C" }{TEXT -1 3 " /(" }{TEXT 268 2 "Z " }{TEXT -1 5 "w1 + " }{TEXT 269 2 "Z " }{TEXT -1 160 "w2) by computing the integrals of (1/y)*dx from the basepoint to those point s. Then add up those images (those integrals) so that we get a third p oint Z1+Z2 in " }{TEXT 270 1 "C" }{TEXT -1 3 " /(" }{TEXT 271 2 "Z " } {TEXT -1 5 "w1 + " }{TEXT 272 2 "Z " }{TEXT -1 176 "w2),. Then we may \+ wonder, for which point Q on the curve is it so that if we compute the integral of (1/y)*dx from the base-point to Q, that this integral the n is Z1+Z2 modulo " }{TEXT 332 2 "Z " }{TEXT -1 5 "w1 + " }{TEXT 333 2 "Z " }{TEXT -1 3 "w2." }}{PARA 0 "" 0 "" {TEXT -1 34 "Lets denote th at point Q by P1+P2." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 36 "Is there any easy way to find P1+P2?" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 176 "It turns out that the \+ answer is yes, there is a nice geometric construction that gives you P 1+P2, where the only thing we have to do is intersect the curve with s traight lines." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 273 77 "Claim: If 3 points P1, P2, P3 are on the same straight l ine then: P1+P2+P3=0." }}{PARA 0 "" 0 "" {TEXT -1 259 "More generally: if we intersect the curve with any other curve, compute the intersect ion points (with multiplicity) then the sum of those points is zero. W e will only intersect the curve with straight lines though, because th at is the easiest to compute with." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 249 "What is 0 in this setting? Remember that the integral is over a path from the basepoint (0:1:0) to the point P . If P=(0:1:0), i.e. P is the point at infinity, then we are integrati ng from (0:1:0) to itself and so the integral is the zero element in \+ " }{TEXT 274 1 "C" }{TEXT -1 3 " /(" }{TEXT 275 2 "Z " }{TEXT -1 5 "w1 + " }{TEXT 276 2 "Z " }{TEXT -1 4 "w2)." }}{PARA 0 "" 0 "" {TEXT -1 71 "So, the 0 element of this addition must be the base-point P0 = (0: 1:0)." }}{PARA 0 "" 0 "" {TEXT -1 277 "The zero element in the group o f points is the point at infinity because that is the point we took as base-point for the integrals. We could have taken any point as base-p oint (and hence as zero in the group). But one always takes the point \+ at infinity unless stated otherwise." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 99 "We won't prove the claim, but assuming \+ that it is true, it is now easy to compute the sum of P1+P2:" }}{PARA 0 "" 0 "" {TEXT -1 64 "Step 1) Compute the straight line L that goes t hrough P1 and P2." }}{PARA 0 "" 0 "" {TEXT -1 126 "Step 2) Compute the intersection points of L and the curve. There must be 3 intersection \+ points, two of which we already know." }}{PARA 0 "" 0 "" {TEXT -1 138 "Step 3) Compute the third intersection point, say that is P3. Now P1+ P2+P3=0, so P1+P2 = -P3. We now know P3 and we have to calculate -P3. " }}{PARA 0 "" 0 "" {TEXT -1 86 "Step 4) Compute the line M that goes \+ through: the base-point P0=(0:1:0), the point P3." }}{PARA 0 "" 0 "" {TEXT -1 261 "Step 5) Compute the intersection points of M and the cur ve, we already know P0 and P3, and there must be one more intersection point, lets call that P4. Then we have: P0+P3+P4=0, and the base-poi nt P0 corresponds to 0, so P3+P4=0 so P4=-P3, which equals P1+P2." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 425 "Remark o n step 4 and step 5. A line that goes through (0:1:0) must be vertical . Because of that, it is easy to see that if P3=(a,b) then P4 must hav e the same x-coordinate as P3, therefore P4 must be (a,-b). We see now why taking infinity as base-point is a good choice, because steps 4 a nd 5 are computationally trivial. With infinity as zero, we really onl y have to do steps 1,2,3, and then multiply the y-coordinate by -1." } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 35 "Step 1: \+ Take an equation of a line:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "L := a*x+b*y+c;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG,(*&%\"aG \"\"\"%\"xGF(F(*&%\"bGF(%\"yGF(F(%\"cGF(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 68 "Now compute the equations that say that P1 and P2 are on \+ the line L:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "subs(x=P1[1] ,y=P1[2],L) = 0, subs(x=P2[1],y=P2[2],L) = 0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$/,&%\"bG\"\"\"%\"cGF&\"\"!/,(%\"aGF&F%!\"\"F'F&F(" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 54 "Solve the equations, so that L goe s through P1 and P2." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "sol ve(\{%\},\{a,b,c\});" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<%/%\"cGF%/%\" bG,$F%!\"\"/%\"aG,$*&\"\"#\"\"\"F%F/F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "L:=subs(%, L);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"LG,(*(\"\"#\"\"\"%\"cGF(%\"xGF(!\"\"*&F)F(%\"yGF(F+F)F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 52 "Do one more substitution to get rid of th is variable" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "L:=subs(a=1, b=1,c=1,L);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"LG,(*&\"\"#\"\"\"% \"xGF(!\"\"%\"yGF*F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 50 "Solve f =0 and L=0 to find the intersection points:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "solve(\{L=0, f=0\},\{x,y\});" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%<$/%\"yG\"\"\"/%\"xG\"\"!<$/F(F&/F%!\"\"<$/F(\"\"#/F%! \"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "intersectionPoints:= \{seq(subs(i,[x,y]),i=[%])\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%3in tersectionPointsG<%7$\"\"!\"\"\"7$F(!\"\"7$\"\"#!\"$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 54 "We already knew 2 of these points, take the thi rd one:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "P3 := intersecti onPoints minus \{P1,P2\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#P3G<#7 $\"\"#!\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "P3 := op(P3); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#P3G7$\"\"#!\"$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 14 "Steps 4 and 5:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "P4 := [P3[1],-P3[2]];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#P4G7$\"\"#\"\"$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 17 "So P1+P2 = [2,3]." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 35 "Here is a plot of the construction." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "implicitplot(\{f,L,x-2\},x=-0.5..2.7, y=- 4..4);" }}{PARA 13 "" 1 "" {GLPLOT2D 365 365 365 {PLOTDATA 2 "6&-%'CUR VESG6U7$7$$\"\"#\"\"!$!\"%F*7$F($!3'y***********\\Q!#<7$7$F($!3f++++++ !o$F0F-7$7$F($!3:++++++!o$F07$F($!3Z)***********HNF07$7$F($!3J++++++gL F0F97$F=7$F($!3>)***********4KF07$7$F($!3#4++++++/$F0FA7$7$F($!3[+++++ +SIF07$F($!3y)************)GF07$7$F($!3k++++++?FF0FL7$FP7$F($!3])***** ******pDF07$7$F($!3C,++++++CF0FT7$7$F($!3y+++++++CF07$F($!3n)********* **\\AF07$7$F($!3&4++++++3#F0Fin7$F]o7$F($!3#))***********H>F07$7$F($!3 7,+++++g7$7$F($\"35$************f\"F_qFhr7$F]s7$F($\"3_:++++++JF_q7$7$F( $\"3;$************z%F_qFas7$Fes7$F($\"3o;++++++jF_q7$7$F($\"3w$******* ******zF_qFis7$F]t7$F($\"3?;++++++&*F_q7$7$F($\"3W************>6F0Fat7 $Fet7$F($\"3z,+++++q7F07$7$F($\"3]************R9F0Fit7$F]u7$F($\"3&=++ ++++f\"F07$7$F($\"3z************f++++++\">F07$7$F($\"32++++++!3#F0F\\v7$7$F($\"3i************z?F0 7$F($\"3?-+++++IAF07$7$F($\"3Y*************R#F0Fgv7$F[w7$F($\"3g,+++++ ]DF07$7$F($\"3v************>FF0F_w7$7$F($\"3I************>FF07$F($\"3) =++++++(GF07$7$F($\"39************RIF0Fjw7$F^x7$F($\"3F,+++++!>$F07$7$ F($\"3U************fLF0Fbx7$7$F($\"3)*)***********fLF07$F($\"3c,+++++5 NF07$7$F($\"3#))***********zOF0F]y7$Fay7$F($\"3'4++++++$QF07$7$F($\"3m )*************RF0Fey-%'COLOURG6&%$RGBG\"\"\"F*F*-F$6R7$7$$!3(********* ****>PF_q$\"3A++++++WB\"F07$$!3_(************>#F_qF^u7$Fb\\lFg[l7$7$$\"31,++++++7F[s$\"3*3 ++++++w*F_q7$$!3/s************fF[sFft7$F\\]lF]\\l7$7$$\"39+++++++9F_q$ \"3u*************>(F_q7$$\"35.++++++5F_qF^t7$Ff]l7$Fh\\l$\"3y********* ***f(*F_q7$7$$\"3:++++++!o#F_q$\"3o************RYF_q7$$\"3U.++++++EF_q Ffs7$Fc^lFa]l7$F^^l7$$\"35()************HF_q$\"3KE++++++SF_q7$7$$\"3=+ +++++gRF_q$\"3*)************z?F_qFh^l7$7$$\"3?++++++S_F_q$!3)G++++++![ F[s7$$\"3s.++++++UF_qF^s7$Fi_l7$F__l$\"3<++++++!3#F_q7$7$$\"3C++++++?l F_q$!3#*************RIF_q7$$\"3//++++++eF_qFer7$Ff`lFd_l7$7$$\"3E+++++ ++yF_q$!3a+++++++cF_q7$$\"3M/++++++uF_qFjq7$F`alFa`l7$7$$\"3H++++++!3* F_q$!3e++++++g\")F_q7$$\"3c.++++++!*F_qFbq7$FjalF[al7$Feal7$$\"39')*** ********R*F_q$!3Qt***********z)F_q7$7$$\"3.++++++O5F0$!31++++++s5F0F_b l7$7$$\"39++++++k6F0$!3H++++++G8F07$$\"3F++++++g5F0Fip7$7$Facl$!3b++++ ++?6F0Febl7$7$$\"3E++++++#H\"F0$!3^++++++%e\"F07$$\"3U++++++?7F0Fap7$F ]dlF[cl7$7$$\"3P++++++?9F0$!3u++++++S=F07$$\"3L++++++!Q\"F0Fjo7$FgdlFh cl7$7$$\"3[++++++[:F0$!3'4+++++g4#F07$$\"3[++++++S:F0F^o7$FaelFbdl7$F \\el7$$\"3t++++++!e\"F0$!3Z,+++++g@F07$7$$\"3f++++++w;F0$!3>,+++++_BF0 Ffel7$7$$\"3r++++++/=F0$!3V,+++++3EF07$$\"3g+++++++F0$!3l,+++++kGF07$$\"3J++++++g=F0FQ7$FaglFbfl7$7$$\"3% 4++++++1#F0$!3)=++++++7$F07$$\"3-++++++??F0FJ7$F[hlF\\gl7$7$$\"3/,++++ +)=#F0$!35-+++++wLF07$$\"3:++++++!=#F0$!3w++++++gLF07$7$FfhlF>Ffgl7$F` hl7$$\"3k/+++++?AF0$!3r4+++++SMF07$7$$\"3<,+++++;BF0$!3M-+++++KOF0F]il 7$7$$\"3G,+++++WCF0$!3c-+++++))QF07$$\"3&)************RBF0F37$F^jlFcil 7$7$$\"3++++++++DF0F+7$$\"3s,+++++WCF0F\\jlF\\z-F$6]r7$7$F^\\l$!3-++++ ?s(H'F_q7$$!3oVN]^$[JU\"F_qF^r7$F_[m7$$!3/\"G&4cq?(\\\"F_q$!3B/=wfB)p& RF_q7$7$$!3tXjt^oE/@$ozD1;F_q$\"3\"[)H!3#\\k:FF_q7$7$$!3iXN ]^$[JU\"F_q$\"3s$************z%F_qFe\\m7$7$F\\]mFfs7$$!3Sg%QhVPGM\"F_q $\"3kWhM!f$4d_F_q7$7$F^\\l$\"3-++++?s(H'F_qFb]m7$7$Fh\\l$!3!********f. >,\"F07$$!37$fu#R'pd8(F[sFbq7$F_^mF\\[m7$7$F^\\l$\"39,+++?s(H'F_q7$$!3 !*3^MH'*f.*)F[s$\"3$=FOt!***eK(F_q7$7$$!3`PYFR'pd8(F[sF^tFg^m7$F]_m7$$ !3!\\UC!*Q&o-IF[s$\"3c*4csMr10*F_q7$7$Fh\\l$\"37++++O!>,\"F0Fa_m7$7$Fb ]l$!3&)*******\\7C=\"F07$$\"3m^?*oB-BV)F[sFecl7$7$F_`mFip7$Fh\\l$!37++ ++O!>,\"F07$Fg_m7$$\"3\\gwZ/1/1RF[s$\"3$y0))[)*[B0\"F07$7$$\"38`>*oB-B V)F[sFftFg`m7$F]am7$$\"3w%QcH?OwA\"F_q$\"3;.4E\\44j6F07$7$Fb]l$\"3&)** *****\\7C=\"F0Faam7$7$Fb]l$!33++++DT#=\"F07$$\"3R2\"Hjo^.r\"F_q$!3axAe @ze(>\"F07$7$F_^l$!3)********H,]C\"F0F^bm7$Fgam7$$\"3@Rd\"f3#zhAF_q$\" 3yk5_y>bC7F07$7$F_^l$\"3)********H,]C\"F0Fhbm7$Fdbm7$$\"3EwOa1#H@=$F_q $!3))>fj,B`X7F07$7$F__l$!3/++++\\NY7F0Fbcm7$F^cm7$$\"3G#=y&>$4nX$F_q$ \"3y`a5qE#eC\"F07$7$F__l$\"3/++++\\NY7F0F\\dm7$Fhcm7$$\"3)4=(G)[')*3WF _q$!3D'zr?iYAB\"F07$7$Fe_l$!3))*******4Mh?\"F0Ffdm7$Fbdm7$$\"3/!3'fkL$ f%[F_q$\"3[z4&)em^=7F07$7$Fe_l$\"3))*******4Mh?\"F0F`em7$F\\em7$$\"3[% Q30P:&GbF_q$!3#o4FE%)G@>\"F07$7$Fb`l$!3&********p**R9\"F0Fjem7$Ffem7$$ \"3_FdLi'p3S'F_q$\"3%y1;We#y\\6F07$7$Fb`l$\"3&********p**R9\"F0Fdfm7$F `fm7$$\"3;.wf:%=**f'F_q$!3X,%**Qgz*R6F07$7$$\"3'3CF'*\\2r*pF_qFipF^gm7 $Fdgm7$$\"3sVAD'oj,j(F_q$!3ehIc@4ax5F07$7$F\\al$!3q*********\\h1\"F0Fh gm7$7$F\\al$\"3$**********\\h1\"F07$$\"3=ksi*\\2r*pF_qFft7$FehmFjfm7$F ^hm7$$\"3EQk#[OA.p)F_q$!3;5m?\"f!eA5F07$7$$\"3S,+++++!3*F_q$!3Xmmmm5^. 5F0Fjhm7$7$F\\al$\"3:+++++:m5F07$$\"3J.V7eg#y1)F_q$\"3!R#*oa[VI0\"F07$ 7$Ffal$\"3Xmmmm5^.5F0Fiim7$F`im7$$\"3*oTW(zEwh)*F_q$!3Q^5O*p1W&**F_q7$ 7$Ffbl$!36-+++?(H!**F_qFcjm7$F_jm7$$\"3C_PpR`-m&*F_q$\"3a9cw]m$\\)**F_ q7$7$Ffbl$\"3+,+++?(H!**F_qF][n7$Fijm7$$\"3/W3(G,n08\"F0$!3u5r\"F07$$\"3Ic _b2(>k@\"F0Fip7$F^]nF]\\n7$Fg\\n7$$\"3HhO\")\\?y\"=\"F0$\"3`YeYv[av5F0 7$7$$\"3(\\Dbvq>k@\"F0FftFc]n7$Fi]n7$$\"3\"F0F]^n7$F[]n7$$\"3tn&))y')QWQ\"F0$!3N>9spr4 ^8F07$7$Fcdl$!3y++++D,79F0Fg^n7$7$Ficl$\"3%)*******p^F>\"F07$$\"3*>J$* 3M(o]8F0$\"3g?nwZ;G$H\"F07$7$Fcdl$\"3+,+++D,79F0Fd_n7$7$F]el$!31,++S#) e&o\"F07$$\"3rH4o*f%pI9F0Fap7$Fa`nF]_n7$Fj_n7$$\"3hY\"4,apaU\"F0$\"3yL rs\\hKE9F07$7$$\"3/H4o*f%pI9F0F^uFf`n7$F\\an7$$\"3?,O\"fjOX\\\"F0$\"3R (*f@5%eOd\"F07$7$F]el$\"31,++S#)e&o\"F0F`an7$7$F]fl$!3@NLLLRb6?F07$$\" 3u\"[3)\\IJt:F0Fjo7$7$F^bnFfoF^`n7$7$F]el$\"3G,++S#)e&o\"F07$$\"3+**3K ([z;c\"F0$\"3[`xp\"G,es\"F07$7$$\"32\"[3)\\IJt:F0FjuFfbn7$7$F]cn$\"3M* ***********fF0FQ7$F_fn7$$\"3 &3LEO?=Q$=F0$!3$f#e14bauCF07$7$$\"3LnJ9Ne'*4=F0FgnFcfn7$FifnF]dn7$7$Fc fl$\"3M(G9d[\"pyBF07$$\"3!f+CxW4v!=F0$\"3q')**o!QE7R#F07$7$$\"36nJ9Ne' *4=F0F\\wFagn7$7$$\"3*o;V^$e'*4=F0F\\w7$$\"3SoPvp/?k=F0$\"3i!e:c#))\\p DF07$7$$\"3E+)4_TcB\">F0FdwF^hn7$Fdhn7$$\"3F[Rj?3m@>F0$\"3OI^T[z%eu#F0 7$7$F]gl$\"3OOLLL0duFF0Fhhn7$7$Fggl$!3'G++++&)))>$F07$$\"37P\"Qa&>()3? F0FJ7$Fein7$F]gl$!3\"oLLL`qXx#F07$F^in7$$\"3?![_(G%)ew>F0$\"3]+)=\"G*G &GHF07$7$$\"3oO\"Qa&>()3?F0F_xF]jn7$Fcjn7$$\"36E2:\"3m;.#F0$\"3y&=BrzM 36$F07$7$Fggl$\"3I.+++])))>$F0Fgjn7$7$$\"3\\,+++++)=#F0$!3v%444HmHl$F0 7$$\"31SL*3wjE5#F0F>7$Ff[oFbin7$F][o7$$\"3&GyX4,qc3#F0$\"3kWbjs\\#eH$F 07$7$$\"3iRL*3wjE5#F0FgxF[\\o7$Fa\\o7$$\"3`KTnl:iQ@F0$\"3')pY\"e3YM[$F 07$7$Fahl$\"3I%444HmHl$F0Fe\\o7$7$$\"31/O.7j!)zAF0F+7$$\"3?4pL![Px?#F0 $!32qA%3qV$HPF07$7$$\"3;5K==&)f%>#F0F7Fb]o7$7$Fi]oF37$Fahl$!3I%444HmHl $F07$F[]o7$$\"3Kr3t=z4#>#F0$\"3KBG<._vpOF07$7$$\"3s4K==&)f%>#F0FbyFa^o 7$Fg^o7$$\"351/E@i6VAF0$\"3D')*[oW4A'QF07$7$$\"3<.O.7j!)zAF0FjyF[_oF\\ z-%+AXESLABELSG6$%\"xG%\"yG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 41 "Here is a little procedure to add points. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1570 "addPoints:=proc(P1,P2 ,f,x,y)\n local su1,su2,L,a,b,c,i,P3;\n if P1=[0,1,0] then RETURN(P2 ) fi;\n if P2=[0,1,0] then RETURN(P1) fi;\n if P1[1]=P2[1] and P1[2] =-P2[2] then\n # P1 and P2 are on a vertical line, sum=0\n R ETURN([0,1,0])\n fi;\n su1:=x=P1[1], y=P1[2]:\n su2:=x=P2[1], y=P2[ 2]:\n if P1=P2 then\n # If P1=P2 then we need to take a tangent \+ line.\n # The following line has the correct angle:\n L:=sub s(su1,diff(f,x))*x + subs(su1,diff(f,y))*y + c;\n # And now it al so goes through the point P1:\n L:=subs(c=solve(subs(su1,L)=0,c), L);\n # Now compute the intersection points, and\n # throw a way P1:\n P3:=\{seq(subs(i,[x,y]), i=\{solve(\{L,f\},\{x,y\})\}) \};\n if nops(P3)=1 then\n # there is only 1 intersection point with the line\n # and the curve, so that must be an inf lection point.\n P3:=P1\n else\n P3:=op(P3 minus \+ \{P1\})\n fi\n else\n L:=a*x+b*y+c;\n L:=subs(solve(\{ subs(su1,L),subs(su2,L)\},\{a,b,c\}),L);\n L:=subs(a=1,b=1,c=1,L) ;\n P3:=\{seq(subs(i,[x,y]), i=\{solve(\{L,f\},\{x,y\})\})\};\n \+ if nops(P3)=2 then\n # there are only 2 points on this lin e, so one\n # of the two must be a tangent point.\n L: =normal(subs(solve(\{L\},\{y\}),f)/((x-P1[1])*(x-P2[1])));\n i f subs(x=P1[1],L)=0 then P3:=P1\n elif subs(x=P2[1],L)=0 then \+ P3:=P2 else ERROR()\n fi\n else\n # there are 3 p oints on the line:\n P3:=op(P3 minus \{P1,P2\});\n fi\n \+ fi;\n # Now put in the -sign at the y-coordinate:\n [P3[1],- P3[2]];\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "addPoints( P1,P2,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\"#\"\"$" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 70 "So we see that the procedure retur ns the same result as we had before." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 31 "Now lets add a point to itself:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "P2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\"\"!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "addPoints(P2,P2,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\" \"!\"\"\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "And the plot for tha t is:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "implicitplot(\{f,y +1,x\},x=-0.5..2.7, y=-3..3);" }}{PARA 13 "" 1 "" {GLPLOT2D 365 365 365 {PLOTDATA 2 "6&-%'CURVESG6U7$7$$!3>9O&>&pWpM!#N$!\"$\"\"!7$$!352o( fZBZt\"F*$!3f**********\\xH!#<7$7$F/$!3M************fFF3F.7$7$F($!3z** **********fFF37$F/$!3Q**********\\PFF37$7$F/$!3d************>DF3F<7$7$ F(FA7$F/$!3g**********\\(\\#F37$7$F/$!3O************zAF3FE7$7$F(FJ7$F/ $!3R**********\\dAF37$7$F/$!39************R?F3FN7$7$F(FS7$F/$!3=****** ****\\8F3Feo7$7$F(Fjo7$F/$!3?******* ***\\(H\"F37$7$F/$!3=************z5F3F^p7$7$F(Fcp7$F/$!3@**********\\d 5F37$7$F/$!3#>************R)!#=Fgp7$7$F(F\\q7$F/$!3E#**********\\<)F^q 7$7$F/$!3+#*************fF^qFaq7$7$F(Ffq7$F/$!3D\"**********\\x&F^q7$7 $F/$!33#************f$F^qFjq7$7$F(F_r7$F/$!3*=**********\\P$F^q7$7$F/$ !3=#************>\"F^qFcr7$7$F(Fhr7$F/$!3&)>**********\\(*!#>7$7$F/$\" 3s2++++++7F^qF\\s7$7$F(Fbs7$F/$\"3#z+++++]U\"F^q7$7$F/$\"3i2++++++OF^q Ffs7$7$F(F[t7$F/$\"3%y+++++]#QF^q7$7$F/$\"3a2++++++gF^qF_t7$7$F(Fdt7$F /$\"3?2+++++DiF^q7$7$F/$\"3M1++++++%)F^qFht7$7$F($\"3Y2++++++%)F^q7$F/ $\"352+++++D')F^q7$7$F/$\"3t++++++!3\"F3Fcu7$7$F(Fhu7$F/$\"3q+++++]-6F 37$7$F/$\"3t++++++?8F3F\\v7$7$F(Fav7$F/$\"3o+++++]U8F37$7$F/$\"3s+++++ +g:F3Fev7$7$F(Fjv7$F/$\"3o+++++]#e\"F37$7$F/$\"3q+++++++=F3F^w7$7$F(Fc w7$F/$\"3o+++++]A=F37$7$F/$\"3#4++++++/#F3Fgw7$7$F(F\\x7$F/$\"3)3+++++ D1#F37$7$F/$\"3p++++++!G#F3F`x7$7$F($\"38,+++++!G#F37$F/$\"35,++++]-BF 37$7$F/$\"3N,+++++?DF3F[y7$7$F(F`y7$F/$\"3J,++++]UDF37$7$F/$\"3c,+++++ gFF3Fdy7$7$F(Fiy7$F/$\"3_,++++]#y#F37$7$F/$\"3y,++++++IF3F]z-%'COLOURG 6&%$RGBG\"\"\"F-F--F$6U7$7$$!3++++++++]F^q$!\"\"F-7$$!3RimmmmmYTF^qF_[ l7$7$$!3(*************>PF^qF_[lFa[l7$Fe[l7$$!3OimmmmmmGF^qF_[l7$7$$!3% *************RCF^qF_[lFi[l7$F]\\l7$$!3Mimmmmm'e\"F^qF_[l7$7$$!3#****** *******f6F^qF_[lFa\\l7$Fe\\l7$$!3v@mmmmmmIF_sF_[l7$7$$\"31,++++++7F_sF _[lFi\\l7$F]]l7$$\"3_yLLLLLL(*F_sF_[l7$7$$\"39+++++++9F^qF_[lFa]l7$Fe] l7$$\"3tPLLLLL`AF^qF_[l7$7$$\"3:++++++!o#F^qF_[lFi]l7$F]^l7$$\"3wPLLLL LLNF^qF_[l7$7$$\"3=++++++gRF^qF_[lFa^l7$Fe^l7$$\"3CPLLLLL8[F^qF_[l7$7$ $\"3?++++++S_F^qF_[lFi^l7$F]_l7$$\"3OQLLLLL$4'F^qF_[l7$7$$\"3C++++++?l F^qF_[lFa_l7$Fe_l7$$\"3SQLLLLLttF^qF_[l7$7$$\"3E+++++++yF^qF_[lFi_l7$F ]`l7$$\"3VQLLLLL`')F^qF_[l7$7$$\"3S,+++++!3*F^qF_[lFa`l7$Fe`l7$$\"3YQL LLLLL**F^qF_[l7$7$$\"3.++++++O5F3F_[lFi`l7$F]al7$$\"3uLLLLLL@6F3F_[l7$ 7$$\"39++++++k6F3F_[lFaal7$Feal7$$\"32MLLLLL\\7F3F_[l7$7$$\"3E++++++#H \"F3F_[lFial7$F]bl7$$\"3=MLLLLLx8F3F_[l7$7$$\"3P++++++?9F3F_[lFabl7$Fe bl7$$\"33MLLLLL0:F3F_[l7$7$$\"3[++++++[:F3F_[lFibl7$F]cl7$$\"3UMLLLLLL ;F3F_[l7$7$$\"3f++++++w;F3F_[lFacl7$Fecl7$$\"3IMLLLLLhF3F_[l Fadl7$Fedl7$$\"3)\\LLLLLt,#F3F_[l7$7$$\"3%4++++++1#F3F_[lFidl7$F]el7$$ \"3kMLLLLLX@F3F_[l7$7$$\"3/,+++++)=#F3F_[lFael7$Feel7$$\"3?NLLLLLtAF3F _[l7$7$$\"3<,+++++;BF3F_[lFiel7$F]fl7$$\"3([LLLLL8S#F3F_[l7$7$$\"3G,++ +++WCF3F_[lFafl7$Fefl7$$\"3)\\LLLLL$HDF3F_[l7$7$$\"3R,+++++sDF3F_[lFif l7$F]gl7$$\"3aNLLLLLdEF3F_[l7$7$$\"3],++++++FF3F_[lFaglFdz-F$6gq7$7$Ff \\l$!3]VWWW%38V'F^q7$$!3Mw\\d]IDX7F^qFfq7$F^hl7$$!3(>^w@THKF\"F^q$!3!> .p@&[p(y&F^q7$7$$!3SxoLj8^h:F^qF_rFbhl7$Fhhl7$$!3;-L(G\"\\5=;F^q$!3!* \\DO)G`5u#F^q7$7$$!3WFyr>0k>0k>0k>[\"F^q$\"3hq*[2yyO?%F^q7$7$$!3)R(\\d]IDX7F^qFdtF][m7$Fc[m7$$!3Y>!oB d+AA\"F^q$\"3fW+>tgi;hF^q7$7$Ff\\l$\"3sXWWW%38V'F^qFg[m7$7$F^]l$!3ELLL Lpt<5F37$$!3Y>y#3\\O7&H`xl`F_sFcp7$F`^m7$$\"3!4++++++?\"F_sFb\\m7$Fi]m7$$\"3I'Q>qy px/$F_s$\"3<(Q$\\;VNX5F37$7$$\"3P9B^H`xl`F_sFhuFh^m7$7$$\"31:B^H`xl`F_ sFhu7$$\"3$oiN_u!zj5F^q$\"3u?$o_BRI9\"F37$7$Ff]l$\"31+++++C$=\"F3Fe_m7 $F]^m7$$\"3t$zZc`/G;#F^q$!3RgRV]e-B7F37$7$F^^l$!3#ommmQ,+D\"F3F_`m7$F[ `m7$$\"3$H-)*>4[1(>F^q$\"3^r.v#[.I@\"F37$7$F^^l$\"3gmmm'Q,+D\"F3Fi`m7$ Fe`m7$$\"37ewcE;;#f$F^q$!33N9)\\II5D\"F37$7$Ff^l$!3pmmmE_W^7F3Fcam7$F_ am7$$\"3+y[kRM4^IF^q$\"31'em+)*>/D\"F37$7$Ff^l$\"3pmmmE_W^7F3F]bm7$7$F f^l$!3\"pmmmAX9D\"F37$$\"3sGgX;%4dt%F^q$!3S/be:bWD7F37$7$F^_l$!3!***** **RIa37F3Fjbm7$Fcbm7$$\"3[)=Fh(4@0WF^q$\"3)H:w>%H_O7F37$7$F^_l$\"3!*** ****RIa37F3Fdcm7$F`cm7$$\"3*Q[_jh5sx&F^q$!3(**3m0*ps!=\"F37$7$$\"38*** *********>lF^q$!3[mmmYjEU6F3F^dm7$Fjcm7$$\"3Wo\"fZ;>71'F^q$\"3Scwg19-m 6F37$7$Ff_l$\"3rmmmYjEU6F3Fjdm7$7$Ff_l$!3rmmmYjEU6F37$$\"3,,\\U]%*>ynF ^q$!3+oY&pR7%G6F37$7$$\"3&z-=v8t/o(F^qFcpFgem7$F]fm7$$\"3'y:9!*)*3&oxF ^q$!3t`,WNa4u5F37$7$F^`l$!3GLLLLL)>2\"F3Fafm7$7$F^`l$\"31LLLLL)>2\"F37 $$\"3?+!=v8t/o(F^qFhu7$F^gmF`em7$Fgfm7$$\"3&**oaRzk6y)F^q$!3#Q]m))RoR- \"F37$7$$\"3=************z!*F^q$!3f*******RW$45F3Fcgm7$F[gm7$$\"3%y=eN hby&yF^q$\"3\\SyXs?:p5F37$7$Fjgm$\"3O*******RW$45F3F_hm7$Figm7$$\"3')* e\"F37$$\"3&)) [bX?32=\"F3Fcp7$F\\\\nF[[n7$Fe[n7$$\"3&>#z!)*R*yq6F3$\"30Z,Ov)ps1\"F37 $7$$\"3=!\\bX?32=\"F3FhuFa\\n7$Fg\\n7$$\"3PKE\"Rz?ED\"F3$\"3J:QT6g$Q: \"F37$7$F^bl$\"3%)******z%oU>\"F3F[]n7$7$Ffbl$!3;BAAAA759F37$$\"3;Lq`P ?\"3O\"F3$!3S************>8F37$7$Fi]nFjoFi[n7$Fa]n7$$\"31'p4LahfK\"F3$ \"3G@VH1@Kc7F37$7$$\"3$Q.Pv.73O\"F3FavF`^n7$Ff^n7$$\"3O&R:t3vMR\"F3$\" 3DNOG6Utp8F37$7$Ffbl$\"3;BAAAA759F3Fj^n7$7$F^cl$!3o0>w/2v'o\"F37$$\"3 \"G0$)fIIW[\"F3Fao7$7$$\"3f_I)fIIW[\"F3FaoFe]n7$F`_n7$$\"3*QBIB*\\nb9F 3$\"3s73Q*Q4J\\\"F37$7$$\"3D`I)fIIW[\"F3FjvF_`n7$Fe`n7$$\"30j6!pWQ_^\" F3$\"3+@.17zU@;F37$7$F^cl$\"3\"f!>w/2v'o\"F3Fi`n7$7$Ffcl$!3*=+++gqW,#F 37$$\"34m2'[&3X)e\"F3Fjn7$FfanFd_n7$F_an7$$\"3v`$zh7EAd\"F3$\"3R8PT8gd aF 3F:7$Fefn7$$\"3\\@sR\"H4k\">F3$!3c)yp8Un2t#F37$7$$\"3XfalSC'o%=F3FAFif n7$7$$\"3nfalSC'o%=F3FAFacn7$7$$\"3\\++++++/=F3F_fn7$$\"3i%e70(GVJ=F3$ \"311*)ynLcoCF37$7$$\"3MgalSC'o%=F3F`yFjgn7$F`hn7$$\"3kvdI>NSz=F3$\"3* Gn,8S='=EF37$7$$\"3'puD\\:bg#>F3FiyFdhn7$Fjhn7$$\"3uQ]=22XG>F3$\"3Nb!G S#\\lmFF37$7$Ffdl$\"36\"yxx(\\^wFF3F^in7$7$$\"3#4E*HyUs'*>F3F+Fbfn7$7$ $\"3/,+++++K>F3$\"3b\"yxx(\\^wFF37$$\"3=ekG\\j%R(>F3$\"3'R*y3&f]8#HF37 $7$$\"3Oh#*HyUs'*>F3FbzFajnFdz-%+AXESLABELSG6$%\"xG%\"yG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curv e 3" }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 17 "One more example:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "P1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\"!\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "addPoints(P1,P1,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\" \"$!\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "implicitplot(\{f ,y-2*x-1,x-3\},x=-1..4, y=-10..10);" }}{PARA 13 "" 1 "" {GLPLOT2D 365 365 365 {PLOTDATA 2 "6&-%'CURVESG6go7$7$$!\"\"\"\"!F(7$$!37*********** ****)!#=$!3?)*************zF.7$7$$!3U+++++++!)F.$!3)3+++++++'F.F+7$F27 $$!3=nmmmmmmwF.$!3ELLLLLLL`F.7$7$$!3W)*************pF.$!3)o*********** **RF.F87$F>7$$!3/LLLLLLLjF.$!32mmmmmmmEF.7$7$F5$!3K-++++++?F.FD7$7$F5$ !3/-++++++?F.7$$!3++++++++]F.$F*F*7$7$$!3y+++++++SF.$\"3)y************ *>F.FQ7$7$FW$\"3/(*************>F.7$$!3TmmmmmmmOF.$\"32mmmmmmmEF.7$7$$ !3m(*************HF.$\"3c.++++++SF.Fin7$7$$!3?)*************HF.Fbo7$$! 3PLLLLLLLBF.$\"3ELLLLLLL`F.7$7$$!3m+++++++?F.$\"3m)*************fF.Fho 7$F^p7$$!2w***************F.$\"3U+++++++!)F.7$7$$!3r#yDJ7:6b&!#M$\"2)) ***************!#$ \"3lmmmmmmm5F`q7$7$$\"37-++++++5F.$\"3;+++++++7F`qFeq7$7$F]r$\"3Q+++++ ++7F`q7$$\"38nmmmmmm;F.$\"3[LLLLLLL8F`q7$7$$\"3a**************>F.$\"3! **************R\"F`qFer7$F[s7$$\"3U+++++++IF.$\"33+++++++;F`q7$7$$\"3A +++++++SF.$\"3#)*************z\"F`qFas7$7$$\"3m**************RF.Fjs7$$ \"3/MLLLLLLVF.$\"3pmmmmmmm=F`q7$7$$\"3A-++++++]F.$\"3W+++++++?F`qF`t7$ Fft7$$\"3^mmmmmmmcF.$\"3uLLLLLLL@F`q7$7$$\"3w**************fF.$\"3;+++ ++++AF`qF\\u7$Fbu7$$\"3m+++++++qF.$\"3M+++++++CF`q7$7$Fgp$\"33+++++++E F`qFhu7$F^v7$$\"3\"[LLLLLLL)F.$\"3&pmmmmmmm#F`q7$7$$\"3c.++++++!*F.$\" 3q+++++++GF`qFbv7$Fhv7$$\"3&ymmmmmmm*F.$\"3cLLLLLLLHF`q7$7$$\"\"\"F*$ \"\"$F*F^w7$7$Few$\"3W+++++++IF`q7$$\"33+++++++6F`q$\"3;+++++++KF`q7$7 $$\"3%**************>\"F`q$\"3Y*************R$F`qF]x7$Fcx7$$\"3SLLLLLL L7F`q$\"3zmmmmmmmMF`q7$7$$\"3E+++++++8F`q$\"3_+++++++OF`qFix7$F_y7$$\" 3pmmmmmmm8F`q$\"3SLLLLLLLPF`q7$7$F^s$\"3#)*************z$F`qFey7$F[z7$ $\"3++++++++:F`q$\"\"%F*7$7$$\"3k*************f\"F`q$\"3G************* >%F`qF_z7$7$$\"3')*************f\"F`qFhz7$$\"3ILLLLLLL;F`q$\"3hmmmmmmm UF`q7$7$$\"3;+++++++F`q$\"37** ************\\F`qFd\\l7$7$F[]l$\"\"&F*7$$\"3ALLLLLLL?F`q$\"3Vmmmmmmm]F `q7$7$$\"33+++++++@F`q$\"3;+++++++_F`qFc]l7$Fi]l7$$\"3^mmmmmmm@F`q$\"3 .LLLLLLL`F`q7$7$$\"3s*************>#F`q$\"3Y*************R&F`qF_^l7$7$ Ff^l$\"3M+++++++aF`q7$$\"3#)*************H#F`q$\"3k*************f&F`q7 $7$$\"3!**************R#F`q$\"3#)*************z&F`qF^_l7$Fd_l7$$\"37LL LLLLLCF`q$\"38nmmmmmmeF`q7$7$$\"3++++++++DF`q$\"\"'F*Fj_l7$F``l7$$\"3( ommmmmmc#F`q$\"3kMLLLLLLhF`q7$7$F_v$\"3;+++++++iF`qFf`l7$7$$\"3_++++++ +EF`qF]al7$$\"3;+++++++FF`q$\"3M+++++++kF`q7$7$F[w$\"3U,++++++mF`qFcal 7$7$$\"3E+++++++GF`q$\"3_+++++++mF`q7$$\"3[LLLLLLLGF`q$\"3&pmmmmmmm'F` q7$7$$\"3!***************GF`q$\"3#)*************z'F`qFbbl7$Fhbl7$$\"3z mmmmmmmHF`q$\"3cLLLLLLLpF`q7$7$F[x$\"3)3+++++++(F`qF^cl7$7$$\"3)3+++++ ++$F`qFecl7$$\"3_+++++++JF`q$\"31,++++++sF`q7$7$$\"31,++++++KF`q$\"37- ++++++uF`qF[dl7$7$$\"3g+++++++KF`qFddl7$$\"3SLLLLLLLKF`q$\"3nnmmmmmmuF `q7$7$$\"3#)*************H$F`q$\"3k*************f(F`qFjdl7$F`el7$$\"38 nmmmmmmLF`q$\"3GMLLLLLLxF`q7$7$$\"3y+++++++MF`q$\"3[-++++++yF`qFfel7$F \\fl7$$\"3)3++++++]$F`q$\"3y,++++++!)F`q7$7$$\"3'4++++++g$F`q$\"3#G+++ +++?)F`qFbfl7$Fhfl7$$\"3>MLLLLLLOF`q$\"3\\nmmmmmm#)F`q7$7$$\"3;+++++++ PF`q$\"3M+++++++%)F`qF^gl7$Fdgl7$$\"3\\nmmmmmmPF`q$\"3*\\LLLLLL`)F`q7$ 7$$\"3;,++++++QF`q$\"3U,++++++')F`qFjgl7$F`hl7$$\"3y+++++++RF`q$\"3q++ +++++))F`q7$7$$\"3)3+++++++%F`q$\"3y,++++++!*F`qFfhl-%'COLOURG6&%$RGBG FfwF*F*-F$6U7$7$F[x$!3G*************>*F`q7$F[x$!#5F*7$7$F[x$!3c)****** ******R)F`qFhil7$7$F[x$!3u)************f(F`qF_jl7$7$F[x$!3#*)********* ***z'F`qFcjl7$7$F[x$!37**************fF`qFgjl7$7$F[x$!3G*************> &F`qF[[m7$7$F[x$!3Y*************R%F`qF_[m7$7$F[x$!3k*************f$F`q Fc[m7$7$F[x$!3#)*************z#F`qFg[m7$7$F[x$!3y**************>F`qF[ \\m7$7$F[x$!3s*************>\"F`qF_\\m7$7$F[xFAFc\\m7$7$F[xFboFg\\m7$7 $F[xFcrFi\\m7$7$F[xFitF[]m7$7$F[xF[wF]]m7$7$F[xFbyF_]m7$7$F[xFg[lFa]m7 $7$F[xF\\^lFc]m7$7$F[xFc`lFe]m7$7$F[xF[clFg]m7$7$F[xFcelFi]m7$7$F[xFgg lF[^m7$7$F[x$\"31,++++++#*F`qF]^m7$7$F[x$\"3=+++++++5!#;F_^m7$F[jlFhil 7$FhilF_jl7$F_jlFcjl7$FcjlFgjl7$FgjlF[[m7$F[[mF_[m7$F_[mFc[m7$Fc[mFg[m 7$Fg[mF[\\m7$F[\\mF_\\m7$F_\\mFc\\m7$Fc\\mFg\\m7$Fg\\mFi\\m7$Fi\\mF[]m 7$F[]mF]]m7$F]]mF_]m7$F_]mFa]m7$Fa]mFc]m7$Fc]mFe]m7$Fe]mFg]m7$Fg]mFi]m 7$Fi]mF[^m7$F[^mF]^m7$F]^mF_^m7$F_^mFc^mFail-F$6gq7$7$F[q$!3L********* ***\\#*F.7$$!3qLLLLLLe9F.FA7$Ff`m7$$!39LLLLLLe9F.$\"3#HLLLLLL$=F.7$7$F [amFboFj`m7$7$$!3'GLLLLL$e9F.Fbo7$$!3#f5Uot%*y!pFhq$\"3DWot%*y:jnF.7$7 $F[q$\"3+'***********\\#*F.Feam7$7$F\\s$!3#***********\\A7F`q7$$\"3%p* *******\\(=F.$\"3A+++++v=7F`q7$7$F\\s$\"39+++++]A7F`qF gcm7$7$F\\s$!39+++++]A7F`q7$$\"3(yI#p2Bpd?F.$!3F.F^dm7$$\"3GMYTj9M'*QF. $\"3MYTj9MYT7F`q7$7$F^t$\"3;+++++]U7F`qFaem7$7$F^t$!3;+++++]U7F`q7$$\" 3kDBI4s$))4%F.$!37I4s$)[`R7F`q7$7$$\"3&=nmmmmmT&F.Fd\\mF^fm7$Fdfm7$$\" 3kh#yM/8R#fF.$!3D/8R<_cp6F`q7$7$Fcu$!3!)***********\\;\"F`qFhfm7$7$Fcu $\"3e***********\\;\"F`q7$$\"3(HlmmmmmT&F.Fcr7$FegmFgem7$7$FapF_gm7$$ \"3K,++++v$f(F.$!3')**********\\P5F`q7$7$Fgp$!3*)***********\\+\"F`qF[ hm7$Fbgm7$$\"3W-+++]P4hF.$\"3L*********\\i:\"F`q7$7$$\"3a,++++++!)F.$ \"3n***********\\+\"F`qFehm7$Fahm7$$\"3*************\\P*F.$!3W)******* *****\\*F.7$7$FewFd`mFaim7$7$FgpF^im7$$\"3^ommmmmT&)F.$\"3fILLLLLL)*F. 7$7$Few$\"3A)***********\\#*F.Fjim7$Fgim7$$\"3D#)eqkF`q7$F[_nFj]n7$Fd^n7$$\"3bJE0@%='G;F`q$\"3rt%*y:j_&)=F`q7$7$$\"3(ommm m;/m\"F`qFitFb_n7$Fh_n7$$\"3\"*******\\ilZF`qF\\\\m7$7$$\"3k0\\etPgJ>F`qF\\\\mFh^n7$Fb`n7$$\"3C9orjcsh=F `q$\"3+VF8Xt4`DF`q7$7$$\"3'e!\\etPgJ>F`qF[wFaan7$Fgan7$$\"3pbA!4OWF(>F `q$\"3^x4RcD-4HF`q7$7$$\"3y**************>F`q$\"3H*********\\7)HF`qF[b n7$7$Ff^l$!3r)***********)o$F`q7$$\"3a0_%za?&p@F`qFh[m7$Fjbn7$Fbbn$!3H *********\\7)HF`q7$7$F[]lFdbn7$$\"3iw6%HN#)33#F`q$\"3-%HN#)eqkF$F`q7$7 $F[cnFbyFccn7$Ficn7$$\"3f*pB$G(Qr=#F`q$\"3'>?0n3X9l$F`q7$7$Ff^l$\"3;** **********)o$F`qF[dn7$7$Fe_l$!3*))*********\\ZWF`q7$$\"33+++]i:&Q#F`qF d[m7$Fhdn7$Ff^l$!3;************)o$F`q7$Fadn7$$\"3)Q?5bx)o!H#F`q$\"3t$= fz*[CPSF`q7$7$FidnFg[lF`en7$Ffen7$$\"3wxxxxFS$R#F`q$\"3#*))))))))))QEW F`q7$7$Fe_l$\"3y**********\\ZWF`qFhen7$7$F_v$!3AdG9dG9__F`q7$$\"3Jdlg$ )4/&e#F`qF`[m7$FefnFedn7$7$F[v$\"3n+++++]ZWF`q7$$\"3CUp'R7&G$\\#F`q$\" 3uJA8/&fo#[F`q7$7$$\"3wdlg$)4/&e#F`qF\\^lF]gn7$Fcgn7$$\"3mQ]9^V.$f#F`q $\"3mZ)>afiyA&F`q7$7$F_v$\"3AdG9dG9__F`qFggn7$7$F^bl$!3'*********\\i+h F`q7$$\"36F4'3PWLx#F`qF\\[m7$FdhnFbfn7$7$FaalF^hn7$$\"3iZ#3OX[**o#F`q$ \"3q5qc&=1-k&F`q7$7$$\"3bF4'3PWLx#F`qFc`lFjhn7$F`in7$$\"3*[]8y(y0(y#F` q$\"3]\")fu)[o<0'F`q7$7$F^bl$\"3&3++++D15'F`qFdin7$7$Fgw$!39nmmmmm\"*p F`q7$$\"3J;!fC&)oG&HF`qFhjl7$FajnFahn7$Fjin7$$\"3h[Qwm(f:)GF`q$\"3U1Y% H$4wtkF`q7$7$FbjnF[clFfjn7$7$$\"3v;!fC&)oG&HF`qF[cl7$$\"3l([@%p'Ri(HF` q$\"3)409BKT]*oF`q7$7$Ficl$\"3-ommmmm\"*pF`qFa[o7$7$Fbdl$!3l.++++]CzF` q7$$\"3]7a\\%Rtb7$F`qFdjl7$F^\\o7$F[xF_jn7$7$F[x$\"3#*ommmmm\"*pF`q7$$ \"3@w^.29yoIF`q$\"3Y(Hf=Pu[K(F`q7$7$F_\\o$\"3_+++++++wF`qFg\\o7$7$F_\\ oFcel7$$\"3$fJE0@%=hJF`q$\"3TQZ*y:j_v(F`q7$7$Fhdl$\"3l.++++]CzF`qFb]o7 $7$F]fl$!3yojjjjj)*))F`q7$$\"3k***\\P4rGH$F`qF`jl7$F_^o7$FhdlF\\\\o7$7 $FbdlFi]o7$$\"3\"ot%*y:Q@D$F`q$\"3!Q0@%otW\">)F`q7$7$F`^oFgglFf^o7$7$F `^o$\"3c)************R)F`q7$$\"3F8:y`WQULF`q$\"3A_R([=i/j)F`q7$7$$\"3C ,++++++MF`q$\"3yojjjjj)*))F`qFa_o7$7$Fifl$!3h0++++v8**F`q7$$\"3V!33333 eX$F`qFiil7$F``oF\\^o7$Fg_o7$$\"3!4G:8'*f?V$F`q$\"3k!))QZ:g<2*F`q7$7$$ \"3)333333eX$F`qF`^mFe`o7$F[ao7$$\"34X![mR^-_$F`q$\"3gCyS8W**=&*F`q7$7 $Fifl$\"3h0++++v8**F`qF_ao7$7$$\"3\\y\"zI&f<:OF`q$!2#)***************F f^mF]`o7$Feao7$$\"3*Qi)zcq!*3OF`q$\"3!>^0GxrV'**F`q7$7$$\"3Qz\"zI&f<:O F`qFd^mF_boFail-%+AXESLABELSG6$%\"xG%\"yG" 1 2 0 1 10 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 0 "Curve 1" "Curve 2" "Curve 3" }}}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 23 "OK, lets try something:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "Q:=P2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG7$\"\"\"!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "Q:=addPoints(Q,Q,f,x,y); length_expression = length(Q );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG7$\"\"!\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%2length_expressionG\"\"'" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 55 "Q:=addPoints(Q,Q,f,x,y); length_expression = length(Q);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG7$\"\"$!\"(" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#/%2length_expressionG\"\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "Q:=addPoints(Q,Q,f,x,y); length_exp ression = length(Q);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG7$#\"#g \"#\\#!$$Q\"$V$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%2length_expressio nG\"#@" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "Q:=addPoints(Q,Q, f,x,y); length_expression = length(Q);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG7$#!(x1:\"\"(hx=(#!+t-0kr\",TsQq#>" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%2length_expressionG\"#Y" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "Q:=addPoints(Q,Q,f,x,y); length_expression = length(Q );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG7$#\"=?AIU1(3_BE=Aqs)\" " 0 "" {MPLTEXT 1 0 55 "Q:=addPoints(Q,Q,f,x,y); len gth_expression = length(Q);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"QG7 $#\"[r.E)*pUpx_fP4\\q[R&3NSvwB'>0Z/B5WSTVJ&)fSQb$y]TbzaE+Z1v*Q'>N*yd\" jqTyaY'[?^y/:IY/3\"[\"pSOa[*4I`IgY!oj\")e^$Q-S0BF6BLG'**)#\" cu$fI-3l.Z'Q*H3xMJq\"==]x:eR<@3(Qel&fh(eT[GFhY`Q+()o5?rK2`_;qAr!ou>cVI nYsox(fc\\%[R)*y%[!yyijLBu\"buhB$\\>pp-rD[yyr#=#o4b=5be9\"['>\">*RFFVw 0yL!)*[[ua\"pPte52Rv$Q)oGp14'p\"=*H#H]>)z`nI;#RrPE+P3owK)p#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%2length_expressionG\"$p&" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 101 "If you add Q again to Q then you need close to 4*569, which is more than 2000, digits to represent Q!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 204 "Notice that when th e point has already gotten big, then whenever you multiply Q by 2 you \+ get about 4 times as much digits, and this factor 4 gets more and more accurate when Q becomes a larger expression." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 277 254 "Definition: If P is a p oint on the curve, let n be the numerator of the x-coordinate and let \+ d be the denominator of the x-coordinate. Then the logarithmic height \+ (we'll just call it: height) of the point P is defined as the maximum \+ of log(n) and log(d)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 22 "Denote the height as: " }{TEXT 279 4 "h(P)" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 96 "So up to some bounded factor, h(P ) is more or less the number of digits you need to represent P." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 278 53 "Theorem: h(P+P) is at least 4*h(P) minus a constant." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 120 "So whenever h(P) is larg er than some constant, then h(P+P) is about 4 times h(P). This matches our experiment very well." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "with(algcurves):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 63 "Load the \+ algcurves package so we can run the following command:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "j_invariant(f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6##!%'4%\"#V" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "evalf(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$!+&R\"eD&*!\")" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 4 "The " }{TEXT 280 11 "j invariant " }{TEXT -1 73 " is a number that characterizes elliptic curves over t he complex numbers." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 91 "If C1 and C2 are algebraic curves, then they are called birational when there is a 1-1 map:" }}{PARA 0 "" 0 "" {TEXT -1 13 " \+ C1 ---> C2" }}{PARA 0 "" 0 "" {TEXT -1 235 "defined by rational func tions. Two curves are birational if and only if they are isomorphic as Riemann surfaces (as compact surfaces with a complex structure on it) . Two elliptic curves are birational if and only if they have the same " }{TEXT 281 12 "j invariant." }}{PARA 0 "" 0 "" {TEXT -1 25 "For eve ry complex number " }{TEXT 282 3 "j, " }{TEXT -1 141 "there is (up to \+ birational equivalence) precisely one elliptic curve with that j invar iant. So the set of all possible j invariants (the set " }{TEXT 334 2 "C " }{TEXT -1 162 "of complex numbers) classifies the set of all elli ptic curves over the complex numbers, up to equivalence. One says: the moduli space of the elliptic curves over " }{TEXT 283 1 "C" }{TEXT -1 66 " is isomorphic to the set of all possible j invariants, which \+ is " }{TEXT 284 1 "C" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 89 "The j invariant does not classify the e lliptic curves over the real numbers. For example:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "f1 := y^2 - x*(x^2+1); f2:= y^2 - x*(x^2- 1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#f1G,&*$)%\"yG\"\"#\"\"\"F**& %\"xGF*,&*$)F,F)F*F*F*F*F*!\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%# f2G,&*$)%\"yG\"\"#\"\"\"F**&%\"xGF*,&*$)F,F)F*F*F*!\"\"F*F0" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "j_invariant(f1,x,y); j_invar iant(f2,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"%G<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"%G<" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 88 "As y ou can see, f1 and f2 have the same j invariant. This means you can co nstruct a map:" }}{PARA 0 "" 0 "" {TEXT -1 12 " C1 ---> C2" }}{PARA 0 "" 0 "" {TEXT -1 572 "that is defined with rational functions. This \+ map is also an isomorphism between the groups of additive points (over the complex numbers) of C1 and C2. However, in this example this map \+ can not be defined over the real numbers, you have to use complex numb ers to write down the map. Why? Well, over the real numbers the curve \+ C1 (given by f1=0) has only 1 component and C2 has 2 real components. \+ So over the reals there can not be an isomorphism. Over the complex nu mbers this problem does not appear because both have just 1 connected \+ component, and these are isomorphic." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 143 "So over the real numbers, the j-invari ant does not classify elliptic curves up to equivalence. But there are still some nice properties though:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT -1 122 "If C is an elliptic curve given by f=y^ 2-fx with fx a polynomial of degree 3 in x with real numbers as coeffi cients, then:" }}{PARA 0 "" 0 "" {TEXT -1 19 "j is a real number." }} {PARA 256 "" 0 "" {TEXT -1 42 "If C has 1 real component then j <= 17 28." }}{PARA 257 "" 0 "" {TEXT -1 42 "If C has 2 real components then \+ j >= 1728." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 96 "We saw in the example before where f had j=-95.2558... that the curve had just 1 real component." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 144 "What about the group of points on an ell iptic curve over the reals? Topologically such curve is either 1 or 2 \+ circles. You can think of the set " }{TEXT 285 4 "R/Z " }{TEXT -1 19 " as a circle, where " }{TEXT 286 2 "R " }{TEXT -1 25 "are the real numb ers and " }{TEXT 287 2 "Z " }{TEXT -1 105 "the integers. This would le ad one to believe that the group of points on a real elliptic curve is either:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 70 "If the number of real components is 1 then the group is isomorphic to:" }{TEXT 288 6 " R/Z." }}{PARA 0 "" 0 "" {TEXT 291 0 "" }{TEXT -1 71 "If the number of real components is 2 then the group is isomorp hic to: " }{TEXT 289 9 " R/Z * C2" }{TEXT -1 17 ", the product of " } {TEXT 290 4 "R/Z " }{TEXT -1 39 "and a cyclic group with two elemement s." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 113 "It is easy to see why this is true if we consider what the possible imag e could be of the real points in the set " }{TEXT 292 1 "C" }{TEXT -1 3 " /(" }{TEXT 293 2 "Z " }{TEXT -1 5 "w1 + " }{TEXT 294 2 "Z " } {TEXT -1 603 "w2). For each point P in the connected component that co ntains the base-point, we can compute an integral that is a real numbe r because we can find a path through real points from the base-point t o P and the integrand (1/y)*dx is also real, so the resulting integral is real. If there is a second connected component, and if P is in tha t component, then P+P is in the first component again. So the integral to the point P is a complex number, that when you multiply it by two \+ then modulo w1 and w2 it must again be real. We may assume that w1 is \+ real and w2 is not real, so then the set of integrals is " }{TEXT 335 1 "R" }{TEXT -1 9 " (modulo " }{TEXT 336 2 "Z " }{TEXT -1 5 "w1 + " } {TEXT 337 2 "Z " }{TEXT -1 39 "w2) for the first component, and it is \+ " }{TEXT 340 1 "R" }{TEXT -1 18 "+(1/2)*w2 (modulo " }{TEXT 338 2 "Z \+ " }{TEXT -1 5 "w1 + " }{TEXT 339 2 "Z " }{TEXT -1 62 "w2) for the seco nd component (if there is a second component)." }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 42 "Elliptic curves \+ over the rational numbers." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 195 "Since the rational numbers are a subset of the r eal numbers, the group of points over the rational numbers (i.e. the g roup of those points that have rational numbers as entries) is a subgr oup of:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 295 3 "R/Z" }}{PARA 0 "" 0 "" {TEXT -1 6 "or of:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 296 9 "R/Z * C2." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 35 "A point P on the curve is called a " }{TEXT 297 13 "torsi on point" }{TEXT -1 138 " if there exists a positive integer n such th at n*P is zero in the group (so n*P is the point at infinity). n*P is \+ short for: P+P+P+...+P." }}{PARA 0 "" 0 "" {TEXT -1 164 "Since the gro up is commutative, it is clear that the set of torsion points forms a \+ subgroup. The set of torsion points with real coefficients must be iso morphic to:" }}{PARA 0 "" 0 "" {TEXT 298 3 "Q/Z" }}{PARA 0 "" 0 "" {TEXT -1 3 "or:" }}{PARA 0 "" 0 "" {TEXT 299 8 "Q/Z * C2" }}{PARA 0 " " 0 "" {TEXT -1 6 "where " }{TEXT 300 1 "Q" }{TEXT -1 65 " is the set \+ of rational numbers. Why, well if A is an element of " }{TEXT 301 4 "R /Z," }{TEXT -1 272 " so A can be represented by a real number and we c ompute modulo integers (so adding or substracting integers has no effe ct) then take the denominator of A, which is an integer, and if we mul tiply A by that integer then the product is an integer (the numerator) , so modulo " }{TEXT 302 2 "Z " }{TEXT -1 104 "the product is zero. So there is a positive integer such that A times that integer is zero in the group." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 16 "A point P is an " }{TEXT 313 16 "inflection point" }{TEXT -1 57 " when 3*P is zero. Over the complex numbers the group is " }{TEXT 314 1 "C" }{TEXT -1 2 "/(" }{TEXT 315 2 "Z " }{TEXT -1 5 "w1 + " } {TEXT 316 2 "Z " }{TEXT -1 72 "w2) so it is clear that there are 9 inf lection points, corresponding to:" }}{PARA 0 "" 0 "" {TEXT -1 21 " i/ 3 * w1 + j/3 * w2" }}{PARA 0 "" 0 "" {TEXT -1 20 "for i,j from 0 to 2. " }}{PARA 0 "" 0 "" {TEXT -1 35 "Over the real numbers the group is " }{TEXT 317 8 "R/Z * C2" }{TEXT -1 4 " or " }{TEXT 318 3 "R/Z" }{TEXT -1 342 " and so the number of inflection points is always 3 (the point at infinity and two finite points). More generally, the number of poi nts P for which n*P is zero is n^2 over the complex numbers. Over the \+ real numbers the number is n when n is odd, and it is either n or 2*n \+ (depending on whether there is 1 or 2 real components) when n is even. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 4 "The " }{TEXT 303 13 "torsion index" }{TEXT -1 18 ", also called the " } {TEXT 319 5 "order" }{TEXT -1 362 " of a torsion point P is the smalle st positive integer n such that n*P is zero. We saw that over the real numbers the order of points in an elliptic curve C can be arbitrarily high. However, if C is a rational elliptic curve (so we restrict to r ational points) then the order can not be arbitrarily high, which impl ies that the group of torsion points is finite." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 659 "Why? The reason is the f ollowing (I won't explain what \"good reduction\" precisely means). Th ere are infinitely many prime numbers p such that the point P and the \+ curve have \"good reduction\" mod p. If P is a torsion point, and Q is the point on the reduced curve mod p, then the order of P (assuming t hat P is a torsion point) equals some power of p times the order of Q. Apply good reduction modulo 2 distinct primes and you get a bound for the order. Note that also works in the case of higher genus curves, r eduction mod two primes gives you a way to bound the torsion index of \+ a divisor (under the assumption that that divisor is indeed a torsion \+ divisor)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 23 "Conclusion: The set of " }{TEXT 306 43 "torsion points on a ration al elliptic curve" }{TEXT -1 34 " is a group that is isomorphic to:" } }{PARA 0 "" 0 "" {TEXT 304 2 "Cn" }}{PARA 0 "" 0 "" {TEXT -1 2 "or" }} {PARA 0 "" 0 "" {TEXT 305 5 "Cn*C2" }}{PARA 0 "" 0 "" {TEXT -1 129 "wh ere Cn is the cyclic group with n elements. The number n is the highes t torsion index that occurs. Note that in the second case" }{TEXT 307 6 " Cn*C2" }{TEXT -1 56 " we may assume that n is even, because if n i s odd then " }{TEXT 308 5 "Cn*C2" }{TEXT -1 18 " is isomorphic to " } {TEXT 309 2 "Cm" }{TEXT -1 49 " where m=2*n, so that falls under the f irst case." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 138 "We reached this conclusion relatively easily. However, the pre cise statement (which n can occur and which can't) is in fact hard to \+ prove:" }}{PARA 0 "" 0 "" {TEXT 310 161 "Mazur's Theorem: the group of torsion points on an elliptic curve over the rational numbers is isom orphic to one of the following groups, all of which can occur:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 311 33 "Cn, where 1 <= n <= 10 \+ or n=12." }}{PARA 0 "" 0 "" {TEXT -1 2 "or" }}{PARA 0 "" 0 "" {TEXT 312 32 "Cn*C2 where n is 2, 4, 6, or 8." }}{PARA 0 "" 0 "" {TEXT -1 121 "That all of these groups occur can be shown by examples, but that other groups such as C11 do not occur is hard to prove." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 99 "The theorem makes \+ it very easy to check if a given point P is a torsion point or not. Ju st compute:" }}{PARA 0 "" 0 "" {TEXT -1 57 "P, 2*P, 3*P, 4*P, 5*P, 6*P , 7*P, 8*P, 9*P, 10*P, and 12*P" }}{PARA 0 "" 0 "" {TEXT -1 50 "and ch eck if one of them is the point at infinity." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 299 "n_times_point:=pr oc(n,P,f,x,y)\n if n=0 then\n [0,1,0]\n elif n<0 then\n \+ n_times_point(-n, [P[1],-P[2]], f,x,y)\n elif n=1 then\n P\n \+ elif type(n,even) then\n n_times_point(n/2, addPoints(P,P,f,x,y), f,x,y)\n else\n addPoints(P, n_times_point(n-1,P,f,x,y), f,x,y )\n fi\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%.n_times_pointGj+6 '%\"nG%\"PG%\"fG%\"xG%\"yG6\"F,F,@+/9$\"\"!7%F0\"\"\"F02F/F0-F$6',$F/! \"\"7$&9%6#F2,$&F:6#\"\"#F79&9'9(/F/F2F:-%%typeG6$F/%%evenG-F$6',$*&#F 2F?F2F/F2F2-%*addPointsG6'F:F:F@FAFBF@FAFB-FN6'F:-F$6',&F/F2F2F7F:F@FA FBF@FAFBF,F,F,6'F0F0\"(cS\"yF0\"%45" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "f;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,,*$)%\"yG\"\"# \"\"\"F(*&\"\"%F()%\"xG\"\"$F(!\"\"*&\"\")F()F,F'F(F(*&F*F(F,F(F.F(F. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "P1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\"!\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Q:=n_times_point(1,P1,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%\"QG7$\"\"!\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Q:= n_times_point(2,P1,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG7$ \"\"$!\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Q:=n_times_poi nt(3,P1,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG7$#\"\"(\"\"* #\"#H\"#F" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "map(ifactor,%) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$*&-%!G6#\"\"(\"\"\"-F&6#\"\"$! \"#*&-F&6#\"#HF)F*!\"$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 66 "If P1 w ere a torsion point, then Q should also be a torsion point." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 216 "However, there is a theorem that says that if the polynomial f=y^2-fx and fx has int eger coefficients, then every torsion point has integer coefficients a s well. So Q can not be a torsion point, hence neither can P1." }} {PARA 0 "" 0 "" {TEXT -1 66 "A part of the proof of the theorem consis ts of the following fact:" }}{PARA 0 "" 0 "" {TEXT -1 36 "If fx has in teger coefficients, and " }{TEXT 320 123 "if a prime number p divides \+ the denominator of the y-coordinate of Q, then p also divides the deno minator of 2*Q, 3*Q, 4*Q," }{TEXT -1 135 " etc. Note that to prove the theorem we need to do more than just prove this fact, but we won't do that. Lets check these denominators:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "n_times_point(2,Q,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$#\"%SR\"%pv#!'P2!)\"'.&e'" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 15 "map(ifactor,%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# 7$*,-%!G6#\"\"#F(-F&6#\"\"&\"\"\"-F&6#\"$(>F,-F&6#\"\"$!\"#-F&6#\"#HF3 ,$*,-F&6#\"\"(F,-F&6#\"#tF,-F&6#\"%n:F,F0!\"$F4FB!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "n_times_point(3,Q,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$#\"*![b**p\")\"G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "map(ifactor,%);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#7$*4-%!G6#\"\"#\"\"$-F&6#\"\"&\"\"\"-F &6#\"\"(F--F&6#\"#hF--F&6#\"$2\"F--F&6#\"$$QF--F&6#F)!\"%-F&6#\"#6!\"# -F&6#\"#fF@,$*,-F&6#\"#HF--F&6#\".*Q9l!\\@\"F-F:!\"'F=!\"$FAFM!\"\"" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "n_times_point(4,Q,f,x,y); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$#\"1V7gr6n\"*[\"1hh/w%*3`[#\"9ZK !e=V#\\ZFH\"Q$\"9frR4u#px-i3Q$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "map(ifactor,%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$*:-%!G6# \"#>\"\"\"-F&6#\"#VF)-F&6#\"#ZF)-F&6#\"#zF)-F&6#\"$\">F)-F&6#\"%R9F)-F &6#\"%neF)-F&6#\"\"$!\"#-F&6#\"\"(F?-F&6#\"#HF?-F&6#\"#tF?-F&6#\"%n:F? *6-F&6#\"$$QF)-F&6#\"(`I(>F)-F&6#\"%.DF)-F&6#\"(\"G4[F)-F&6#\"&rr$F)F< !\"$F@FfnFCFfnFFFfnFIFfn" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 213 "Inde ed, we see that we're not getting rid of the factor 3 in the denominat or. Why is it so that if we have a prime p (in the example p=3) in the denominator of Q, that then all multiples of Q also have that prime? " }}{PARA 0 "" 0 "" {TEXT -1 603 "There is a simple explanation: If Q \+ has 3 in the denominator, then \"modulo 3\" the point Q is infinity. J ust like if you have a function with x in the denominator, then modulo x (that means: take x=0) the function goes to infinity. So modulo 3, \+ Q is infinity, which is the zero element of the group. In other words, when we compute Q, 2*Q, 3*Q, ... then modulo 3 we are just computing \+ the zero element of the group, 2 * the zero element, 3 * the zero elem ent, and of course this stays the zero element, i.e. the point at infi nity, so modulo 3 it stays infinity, in other words 3 stays in the den ominator." }}{PARA 0 "" 0 "" {TEXT -1 212 "This makes the above given \+ fact plausible but it is not an actual proof because we ignored if the point and curve had \"good reduction modulo p\", and we'll not comple te the rest of the proof of the theorem either." }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 3 "fx;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,**&\"\" %\"\"\")%\"xG\"\"$F&F&*&\"\")F&)F(\"\"#F&!\"\"*&F%F&F(F&F&F&F&" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "discrim(%,x);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#!$)o" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "ifactor(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$*&)-%!G6#\"\"#\" \"%\"\"\"-F'6#\"#VF+!\"\"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 486 "The re exists another theorem that says that the square of the y-coordinat e of a torsion point is either 0 or it must divide the discriminant. S o the y-coordinate in this example must be either 0, -2 or 2, and one \+ quickly finds this way that there are no torsion points. For example, \+ the point [2,3] does not satisfy this condition and hence it can not b e a torsion point. By taking a multiple of [2,3] that has non-integer \+ entries we can also show that [2,3] can not be a torsion point." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "P:=[2,3];" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%\"PG7$\"\"#\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "n_times_point(2,P,f,x,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$#\"\"(\"\"*#\"#H\"#F" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 137 "If P is a torsion point then so is 2*P, but 2*P is not a torsion point because the entries are not integers. So P is not a tor sion point." }}{PARA 0 "" 0 "" {TEXT -1 60 "So this curve has no non-t rivial torsion points. That means:" }}{PARA 0 "" 0 "" {TEXT -1 73 "For every rational point P on the curve (except P=infinity) we have that: " }}{PARA 0 "" 0 "" {TEXT -1 16 "P, 2*P, 3*P, ..." }}{PARA 0 "" 0 "" {TEXT -1 46 "are all distinct and none of them is infinity." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 341 22 "Mordell-Weil T heorem: " }{TEXT -1 72 "The group of rational points on an elliptic cu rve is finitely generated." }}{PARA 0 "" 0 "" {TEXT -1 79 "Since the g roup is commutative this means that the group is isomorphic to:\nF * \+ " }{TEXT 321 2 "Z " }{TEXT -1 2 "* " }{TEXT 322 1 "Z" }{TEXT -1 3 " * \+ " }{TEXT 323 1 "Z" }{TEXT -1 10 " * .... * " }{TEXT 324 3 "Z =" } {TEXT -1 5 " F * " }{TEXT 326 1 "Z" }{TEXT -1 2 "^s" }{TEXT 325 1 " " }}{PARA 0 "" 0 "" {TEXT -1 68 "where F is a finite group (the group of torsion points). The number " }{TEXT 327 3 "s, " }{TEXT -1 66 "the nu mber of independent points of infinite order, is called the " }{TEXT 342 4 "rank" }{TEXT -1 228 " of the elliptic curve. In our example F = \{1\}, and s is at least 1 because we already found points with infin ite order. We can't be sure if the rank is 1 or higher than 1 because \+ all the points we've found so far are dependent:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "P:=[1,1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %\"PG7$\"\"\"F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "seq(n_ti mes_point(i,P,f,x,y),i=0..10);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6-7%\" \"!\"\"\"F$7$F%F%7$F$!\"\"7$\"\"#!\"$7$\"\"$\"\"(7$#F%\"\"%#\"\"&F17$# F.\"\"*#!#H\"#F7$\"#A!$(>7$#\"#g\"#\\#\"$$Q\"$V$7$#!#>\"$@\"#!$J&\"%J8 7$#\"$4'\"$+%#!%Fl\"%+S" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 50 "Lets f irst see if we can find more integer points:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "for i from -1000 to 1000 do if not irreduc(subs( x=i,f)) then lprint(i) fi od;" }}{PARA 6 "" 1 "" {TEXT -1 1 "0" }} {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 2 "22" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 98 "OK, so if there are any more integ er points, the x-coordinate needs to have absolute value > 1000." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 87 "How about rational points? Well, we can search but we don't know if we find eve rything:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 120 "S:=\{\}; for j from 1 to 11 do for i from -j^2 to 500 do if not irreduc(subs(x=i/j^2 ,f)) then S:=S union \{i/j^2\} fi od od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"SG<\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "S;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#<+\"\"!\"\"\"\"\"#\"\"$\"#A#F%\"\"%#!# >\"$@\"#\"\"(\"\"*#\"#g\"#\\" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 195 " We've searched denominators 1^2, 2^2, 3^2,...,11^2 with some pretty la rge numerators and still didn't find any new points. So if there are m ore rational points (other than the ones n*P with n in " }{TEXT 328 1 "Z" }{TEXT -1 139 ") then they can't be very easy points, they must ei ther have a not-so-small denominator or a not-so-small numerator (in o ther words: their " }{TEXT 329 6 "height" }{TEXT -1 15 " is not small) ." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 39 "In g eneral, given a positive number B, " }{TEXT 343 63 "there are only fin itely many rational numbers with height <= B" }{TEXT -1 179 ", so if \+ we check for all of those rational numbers if they are the x-coordinat e of a rational point then we can decide for sure if we have found all points with height <=B or not." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 370 "So: if we could prove some bound on the \+ height, a bound that tells us how far we need to search in order to be sure that we have found a basis for all rational points, then the pro blem of computing the rank would be decidable. Computing all torsion p oints is very easy, but for the non-torsion points it would be nice to have an algorithm that can compute the following:" }}{PARA 0 "" 0 "" {TEXT -1 36 "1) a basis of all non-torsion points" }}{PARA 0 "" 0 "" {TEXT -1 37 "2) a proof that there aren't any more" }}{PARA 0 "" 0 "" {TEXT -1 198 "A complete algorithm that always gives you 1 and 2 does \+ not exist (so the bound we would like to have does not exist either). \+ So we can not for every elliptic curve decide for sure what its rank i s." }}{PARA 0 "" 0 "" {TEXT -1 477 "However, there are very clever alg orithms that work in most cases. That these algorithms do not always w ork is because the computation of a proof that there there are no addi tional (not-yet found) rational points does not always need to termina te. If it terminates, then we can be sure what the rank is, but if it \+ doesn't terminate then we may have found some points but we only have \+ obtained some lower bound for the rank, and can't prove that the lower bound equals the rank." }}{PARA 0 "" 0 "" {TEXT -1 376 "Most likely t hose algorithms would have no troubles with the curve we were computin g with, and they would give a basis for the rational points and constr uct a proof that the rank is not higher than the number of elements in this basis. I have not actually ran the algorithm but I think it is l ikely that the rank of the above curve is 1, and that a basis is \{P\} where P=[1,1]." }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 35 "Elliptic cur ves over finite fields." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 28 "Let p be a prime number and " }{TEXT 344 2 "Fp" } {TEXT -1 27 " the field with p elements." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 102 "For those of you not familiar wit h finite fields, here is a table for \"+\" and \"*\" in the finite fie ld " }{TEXT 345 2 "F7" }{TEXT -1 201 " with 7 elements. The elements o f Fp are represented by 0,1,...,p-1, and we compute modulo p, so that \+ 0 is the same as p, and 1 is the same as 1+p, and A is the same as A+B *p for all integers A,B, etc." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "p:=7;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "for j from 0 to p-1 do print(seq(ca t(i,\"+\",j,\"=\",i+j mod p,\" \"),i=0..p-1)) od;" }}{PARA 11 "" 1 " " {XPPMATH 20 "6)%)0+0=0~~~G%)1+0=1~~~G%)2+0=2~~~G%)3+0=3~~~G%)4+0=4~~ ~G%)5+0=5~~~G%)6+0=6~~~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0+1=1~~~ G%)1+1=2~~~G%)2+1=3~~~G%)3+1=4~~~G%)4+1=5~~~G%)5+1=6~~~G%)6+1=0~~~G" } }{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0+2=2~~~G%)1+2=3~~~G%)2+2=4~~~G%)3+ 2=5~~~G%)4+2=6~~~G%)5+2=0~~~G%)6+2=1~~~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0+3=3~~~G%)1+3=4~~~G%)2+3=5~~~G%)3+3=6~~~G%)4+3=0~~~G%)5+3=1~~ ~G%)6+3=2~~~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0+4=4~~~G%)1+4=5~~~ G%)2+4=6~~~G%)3+4=0~~~G%)4+4=1~~~G%)5+4=2~~~G%)6+4=3~~~G" }}{PARA 11 " " 1 "" {XPPMATH 20 "6)%)0+5=5~~~G%)1+5=6~~~G%)2+5=0~~~G%)3+5=1~~~G%)4+ 5=2~~~G%)5+5=3~~~G%)6+5=4~~~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0+6 =6~~~G%)1+6=0~~~G%)2+6=1~~~G%)3+6=2~~~G%)4+6=3~~~G%)5+6=4~~~G%)6+6=5~~ ~G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "for j from 0 to p-1 d o print(seq(cat(i,\"*\",j,\"=\",i*j mod p,\" \"),i=0..p-1)) od;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6)%)0*0=0~~~G%)1*0=0~~~G%)2*0=0~~~G%)3*0 =0~~~G%)4*0=0~~~G%)5*0=0~~~G%)6*0=0~~~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0*1=0~~~G%)1*1=1~~~G%)2*1=2~~~G%)3*1=3~~~G%)4*1=4~~~G%)5*1=5~~ ~G%)6*1=6~~~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0*2=0~~~G%)1*2=2~~~ G%)2*2=4~~~G%)3*2=6~~~G%)4*2=1~~~G%)5*2=3~~~G%)6*2=5~~~G" }}{PARA 11 " " 1 "" {XPPMATH 20 "6)%)0*3=0~~~G%)1*3=3~~~G%)2*3=6~~~G%)3*3=2~~~G%)4* 3=5~~~G%)5*3=1~~~G%)6*3=4~~~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0*4 =0~~~G%)1*4=4~~~G%)2*4=1~~~G%)3*4=5~~~G%)4*4=2~~~G%)5*4=6~~~G%)6*4=3~~ ~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0*5=0~~~G%)1*5=5~~~G%)2*5=3~~~ G%)3*5=1~~~G%)4*5=6~~~G%)5*5=4~~~G%)6*5=2~~~G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6)%)0*6=0~~~G%)1*6=6~~~G%)2*6=5~~~G%)3*6=4~~~G%)4*6=3~~~G %)5*6=2~~~G%)6*6=1~~~G" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 52 "The tab les illustrate how to add and multiply in F7." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 44 "Now lets consider an elli ptic curve over F7." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "f:=y ^2-x*(x-1)*(x-2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,&*$)%\"yG \"\"#\"\"\"F**(%\"xGF*,&F,F*F*!\"\"F*,&F)F.F,F*F*F." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1600 "addPoints_Fp:=proc(P1,P2,f,x,y,p)\n lo cal su1,su2,L,a,b,c,i,P3;\n if P1=[0,1,0] then RETURN(P2) fi;\n if P 2=[0,1,0] then RETURN(P1) fi;\n if P1[1]=P2[1] and P1[2]=-P2[2] mod p then\n # P1 and P2 are on a vertical line, sum=0\n RETURN([ 0,1,0])\n fi;\n su1:=x=P1[1], y=P1[2]:\n su2:=x=P2[1], y=P2[2]:\n \+ if P1=P2 then\n # If P1=P2 then we need to take a tangent line.\n # The following line has the correct angle:\n L:=subs(su1,d iff(f,x))*x + subs(su1,diff(f,y))*y + c mod p;\n # And now it als o goes through the point P1:\n L:=subs(msolve(subs(su1,L)=0,p),L) ;\n # Now compute the intersection points, and\n # throw awa y P1:\n P3:=\{seq(subs(i,[x,y]), i=\{msolve(\{L,f\},p)\})\};\n \+ if nops(P3)=1 then\n # there is only 1 intersection point w ith the line\n # and the curve, so that must be an inflection \+ point.\n P3:=P1\n else\n P3:=op(P3 minus \{P1\}) \n fi\n else\n L:=a*x+b*y+c;\n L:=subs(msolve(\{subs(s u1,L),subs(su2,L)\},p),L);\n L:=subs(_NN1=1,L) mod p;\n P3:= \{seq(subs(i,[x,y]), i=\{msolve(\{L,f\},p)\})\};\n if nops(P3)=2 \+ then\n # there are only 2 points on this line, so one\n \+ # of the two must be a tangent point.\n L:=Normal(subs(solve (\{L\},\{y\}),f)/((x-P1[1])*(x-P2[1]))) mod p;\n if subs(x=P1[ 1],L) mod p=0 then P3:=P1\n elif subs(x=P2[1],L) mod p=0 then \+ P3:=P2 else ERROR()\n fi\n else\n # there are 3 p oints on the line:\n P3:=op(P3 minus \{P1,P2\});\n fi\n \+ fi;\n # Now put in the -sign at the y-coordinate:\n [P3[1],- P3[2]] mod p;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 340 "n_t imes_point_Fp:=proc(n,P,f,x,y,p)\n if n=0 then\n [0,1,0]\n el if n<0 then\n n_times_point_P(-n, [P[1],-P[2]] mod p, f,x,y,p)\n \+ elif n=1 then\n P mod p\n elif type(n,even) then\n n_tim es_point_Fp(n/2, addPoints_Fp(P,P,f,x,y,p), f,x,y,p)\n else\n a ddPoints_Fp(P, n_times_point_Fp(n-1,P,f,x,y,p), f,x,y,p)\n fi\nend: " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 51 "Now lets compute all points o ver Fp on the curve f." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "p oints:=[seq(seq(subs(j,[i,y]),j=[msolve(subs(x=i,f),p)]),i=0..p-1), [ 0,1,0] ];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'pointsG7*7$\"\"!F'7$\" \"\"F'7$\"\"#F'7$\"\"&F+7$F-F-7$\"\"'F)7$F0F07%F'F)F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 153 "for i from 1 to nops(points) do fo r j from i to nops(points) do print(cat(points[i],\"+\",points[j],\"= \",addPoints_Fp(points[i],points[j],f,x,y,p))) od; od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"!F*Q\"+6\"F)Q\"=F,7%F*\"\"\"F*" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"!F*Q\"+6\"7$\"\"\"F*Q\"= F,7$\"\"#F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"!F*Q\"+6 \"7$\"\"#F*Q\"=F,7$\"\"\"F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%! G7$\"\"!F*Q\"+6\"7$\"\"&\"\"#Q\"=F,7$\"\"'F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"!F*Q\"+6\"7$\"\"&F.Q\"=F,7$\"\"'\"\"\"" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"!F*Q\"+6\"7$\"\"'\"\"\" Q\"=F,7$\"\"&F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"!F*Q \"+6\"7$\"\"'F.Q\"=F,7$\"\"&\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#( ((((%!G7$\"\"!F*Q\"+6\"7%F*\"\"\"F*Q\"=F,F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"\"\"\"!Q\"+6\"F)Q\"=F-7%F+F*F+" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"\"\"\"!Q\"+6\"7$\"\"#F+Q\"=F-7 $F+F+" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"\"\"\"!Q\"+6\"7 $\"\"&\"\"#Q\"=F-7$\"\"'F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G 7$\"\"\"\"\"!Q\"+6\"7$\"\"&F/Q\"=F-7$\"\"'F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"\"\"\"!Q\"+6\"7$\"\"'F*Q\"=F-7$\"\"&\"\"# " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"\"\"\"!Q\"+6\"7$\"\" 'F/Q\"=F-7$\"\"&F2" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"\" \"\"!Q\"+6\"7%F+F*F+Q\"=F-F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((% !G7$\"\"#\"\"!Q\"+6\"F)Q\"=F-7%F+\"\"\"F+" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"#\"\"!Q\"+6\"7$\"\"&F*Q\"=F-7$F/F/" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"#\"\"!Q\"+6\"7$\"\"&F/Q \"=F-7$F/F*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"#\"\"!Q\" +6\"7$\"\"'\"\"\"Q\"=F-7$F/F/" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#((((( %!G7$\"\"#\"\"!Q\"+6\"7$\"\"'F/Q\"=F-7$F/\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"#\"\"!Q\"+6\"7%F+\"\"\"F+Q\"=F-F)" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"&\"\"#Q\"+6\"F)Q\"=F-7$F +\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"&\"\"#Q\"+6\"7 $F*F*Q\"=F-7%\"\"!\"\"\"F1" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G 7$\"\"&\"\"#Q\"+6\"7$\"\"'\"\"\"Q\"=F-7$\"\"!F3" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"&\"\"#Q\"+6\"7$\"\"'F/Q\"=F-7$\"\"\"\"\"! " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"&\"\"#Q\"+6\"7%\"\"! \"\"\"F/Q\"=F-F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"&F*Q \"+6\"F)Q\"=F,7$\"\"#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G 7$\"\"&F*Q\"+6\"7$\"\"'\"\"\"Q\"=F,7$F/\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"&F*Q\"+6\"7$\"\"'F.Q\"=F,7$\"\"!F1" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"&F*Q\"+6\"7%\"\"!\"\"\"F .Q\"=F,F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"'\"\"\"Q\"+ 6\"F)Q\"=F-7$\"\"#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$ \"\"'\"\"\"Q\"+6\"7$F*F*Q\"=F-7%\"\"!F+F1" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"'\"\"\"Q\"+6\"7%\"\"!F+F/Q\"=F-F)" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"'F*Q\"+6\"F)Q\"=F,7$\"\" #\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7$\"\"'F*Q\"+6\"7%\" \"!\"\"\"F.Q\"=F,F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#(((((%!G7%\"\"! \"\"\"F*Q\"+6\"F)Q\"=F-F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 131 "The re are 4 points of order 4, 3 points of order 2, and one point of orde r 1, so the group of points must be isomorphic to C2 * C4." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "p:=101;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"$,\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "points:=[seq(seq(subs(j,[i,y]),j=[msolve(subs(x=i,f),p)]),i=0..p-1 ), [0,1,0] ];" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'pointsG7dq7$\"\"! F'7$\"\"\"F'7$\"\"#F'7$\"\"$\"#R7$F-\"#i7$\"\"%\"#B7$F2\"#y7$\"\"'\"#D 7$F7\"#w7$\"\")\"#H7$F<\"#s7$\"\"*\"#57$FA\"#\"*7$FB\"#N7$FB\"#m7$\"#6 FA7$FJ\"##*7$\"#8FB7$FNFD7$\"#@F)7$FQ\"$+\"7$\"#A\"\"(7$FU\"#%*7$F3\"# =7$F3\"#$)7$\"#CF37$FhnF57$F8F<7$F8\"#$*7$\"#F\"#G7$F^o\"#t7$\"#IF87$F coF:7$\"#MFV7$FfoFX7$FF\"#`7$FF\"#[7$\"#OF27$F]p\"#(*7$F.Fco7$F.\"#r7$ \"#VFF7$FdpFH7$\"#W\"#_7$Fgp\"#\\7$\"#Y\"#L7$F\\q\"#o7$F[pFV7$F[pFX7$ \"#]F77$Fcq\"#&*7$\"#^FF7$FgqFH7$Fhp\"#Z7$Fhp\"#a7$Fio\"#T7$Fio\"#g7$ \"#b\"#J7$Fbr\"#q7$\"#dF^o7$Fgr\"#u7$\"#f\"#:7$F[s\"#')7$F`rFjq7$F`rF \\r7$\"#kF-7$Fbs\"#)*7$\"#n\"#S7$Ffs\"#h7$F_qF87$F_qF:7$\"#pFcr7$F]tFe r7$FaoFio7$FaoF[p7$F:F37$F:F57$F5FQ7$F5\"#!)7$\"#zF_o7$FgtFao7$FetFU7$ FetFgt7$\"#\")Fcr7$F\\uFer7$\"##)FB7$F_uFD7$\"#!*F)7$FbuFS7$FLFJ7$FLFb u7$F\\oFjq7$F\\oF\\r7$FXF)7$FXFS7$FeqFN7$Feq\"#))7$F_pFio7$F_pF[p7$\"# **F_o7$F`vFao7$FS\"#97$FS\"#()7%F'F)F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "nops(points);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$/ \"" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 87 "Now we have a commutative g roup with 104 elements. There are only a few of such groups." }}{PARA 0 "" 0 "" {TEXT -1 254 "Like before, the group can not be cyclic becau se we have 4 elements of order <=2 (3 elements of order 2 and one of o rder 1). So the next guess would be that the group is C2 * C52. If the re exists an element of order 52 then that must be indeed the group." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "ifactor(52);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&)-%!G6#\"\"#F(\"\"\"-F&6#\"#8F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "P:=points[4];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"PG7$\"\"$\"#R" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "n_times_point_Fp(52/13,P,f,x,y,p);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#7$\"#C\"#y" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "n_times_point_Fp(52/2,P,f,x,y,p);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\"\"\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 87 "So 52/2 * P i s not zero, nor is 52/13, so P must have order 52, so the group is C2* C52." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "fx := (x^3-x+2);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#fxG,(*$)%\"xG\"\"$\"\"\"F*F(!\"\" \"\"#F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "f:=y^2 - fx;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,**$)%\"yG\"\"#\"\"\"F**$)%\"xG \"\"$F*!\"\"F-F*F)F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "p:=7 1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"#r" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "points:=[seq(seq(subs(j,[i,y]),j=[msolve(subs (x=i,f),p)]),i=0..p-1), [0,1,0] ];" }}{PARA 12 "" 1 "" {XPPMATH 20 "6 #>%'pointsG7[o7$\"\"!\"#77$F'\"#f7$\"\"\"F(7$F,F*7$\"\"#\"#C7$F/\"#Z7$ \"\"(\"#97$F4\"#d7$\"\")\"\"$7$F9\"#o7$\"\"*\"#:7$F>\"#c7$F?\"\"&7$F? \"#m7$\"#?\"#K7$FG\"#R7$\"#@F?7$FLFA7$\"#AF47$FO\"#k7$\"#B\"#<7$FS\"#a 7$\"#EFL7$FX\"#]7$\"#GFO7$Ffn\"#\\7$\"#HF:7$FjnF<7$\"#MF:7$F]oF<7$\"#N \"#57$F`o\"#h7$\"#Q\"#L7$FeoFeo7$\"#TF?7$FioFA7$\"#XFjn7$F\\p\"#U7$\"# ^FG7$F`pF`p7$\"#_F47$FcpFQ7$\"#`F>7$Ffp\"#i7$FVFT7$FVFV7$\"#b\"#=7$F\\ qFfp7$FA\"#67$FA\"#g7$\"#e\"#F7$Fdq\"#W7$Fco\"#>7$FcoFcp7$\"#lFT7$F\\r FV7$FEFfo7$FEFeo7$F " 0 "" {MPLTEXT 1 0 13 "nops(points);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#j" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "ifac tor(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&)-%!G6#\"\"$\"\"#\"\"\"-F &6#\"\"(F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "P:=points[9]; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"PG7$\"\")\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "n_times_point_Fp(63/3,P,f,x,y,p);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"\"#\"#Z" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "n_times_point_Fp(63/7,P,f,x,y,p);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#7$\"#q\"#7" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 269 "So P is a point in a group with 63 elements, so the order of P di vides 63, however, 63/3 * P is not zero, nor is 63/7 * P, so the order of P does not divide 63/3 nor 63/7, so the order of P can not be smal ler than 63. Hence the order of P is 63. So the group is cyclic." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 85 "How many \+ points does an elliptic curve over Fp have? So far we've seen examples with:" }}{PARA 0 "" 0 "" {TEXT -1 17 "p=7 and 8 points." }}{PARA 0 " " 0 "" {TEXT -1 21 "p=101 and 104 points." }}{PARA 0 "" 0 "" {TEXT -1 19 "p=71 and 63 points." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 104 "So the number of points seems pretty close to p. Le ts estimate the number of points in a simplistic way:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "fx;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%\"xG\"\"$\"\"\"F(F&!\"\"\"\"#F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "i:=rand(0..p-1)();" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%\"iG\"#J" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "K := subs(x= i,fx) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"KG\"#8" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 367 "For this random chosen x-value x=rand(0 ..p-1)(), how many y-values do we expect? Well, f = y^2-fx, so y^2 sho uld be equal to K. Consider the following two cases:\nCase 1. K=0 in F p. Then we get 1 solution for y.\nCase 2. K is not 0 in Fp.\n Case 2 a. K is a square in Fp -> we find 2 solutions for y.\n Case 2b. K \+ is not a square in Fp -> we find 0 solutions for y." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 349 "If p is odd, then prec isely 50% of the non-zero elements of Fp are squares, and 50% are not \+ squares. So in Case 2 it is reasonable to say that with 50% probabilit y we get 2 points and with 50% probability we get 1 point. So the expe ctation value for the number of points in Case 2 equals 1 point, and a lso in Case 1 the expectation value is 1 point." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 53 "So the expectation value \+ for the number of points is:" }}{PARA 0 "" 0 "" {TEXT -1 65 "1 point f or each value of x in Fp, plus 1 more point at infinity." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 4 "So, " }{TEXT 346 86 "the expectation value for the number of points on an elliptic curv e over Fp equals p+1" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 320 "But, as we have seen in the examples, \+ it doesn't always have to be equal to p+1. We could think that we esse ntially throw a coin p+1 times, and each time we get either 2 or 0 poi nts (or sometimes 1 point, but that can happen at most 4 times, for th e roots of fx (fx has 0, 1 or 3 roots in Fp) and the point at infinity )." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 253 "If you throw a coin 10000 times, and you get 2 dollars every time it fal ls on head, 0 dollars for tail, your expectation value is: 10000. Furt hermore, it is not likely that the actual amount is much different fro m 10000, here is a list of probabilities:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 263 "abs(actual amount minus 10000) <= 100 (about 68.75% chance)\nabs(actual amount minus 10000) <= 200 (abo ut 95.56% chance)\nabs(actual amount minus 10000) <= 300 (about 99.74% chance)\nabs(actual amount minus 10000) <= 1000 (about 99.99999999999 9999999998733% chance)\n" }}{PARA 0 "" 0 "" {TEXT -1 236 "That is why \+ the following theorem is at first sight not surprising, but at second \+ sight very surprising. As always, the elliptic curve is given by a pol ynomial \nf=y^2-fx where fx is a polynomial in x of degree 3 with no m ultiple roots.\n" }}{PARA 258 "" 0 "" {TEXT -1 151 "Theorem (Hasse, We il): If p is the number of elements of a finite field F, and the numbe r of points of the curve is N, then: abs(p+1 - N) <= 2*sqrt(p)." }} {PARA 0 "" 0 "" {TEXT -1 94 "Note: for arbitrary non-singular curves, \+ the statement is <=2*g*sqrt(p), where g is the genus." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 253 "The theorem says that the number of points is not too far away from the expectation value p +1, at first sight that's what we expected so that's not surprising. H owever, with the coins game it is \"only\" probable to be close to the expectation value, and " }{TEXT 347 11 "not certain" }{TEXT -1 473 ". With a very small, but non-zero, probability we can be far away from \+ the expectation value with the coins game; we are off by more than 100 0$ in the coins game with 0.1267*10^(-20) procent probability, which i s small but greater than zero. However, the theorem says that for elli ptic curves we can never be far away from the expectation value, not e ven with 0.1267*10^(-20) procent probability, and certainly not with t he 100-95.56=4.44% probability as in the coins game." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 245 "The probility distribu tions (although they clearly must be different because with the curves the probability drops to zero if you stray too far from q+1) look a b it alike, like a bell shaped curve. Closer to q+1 is more likely then \+ further away." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 257 "Note that if you have one curve: y^2-fx that has q+1+k p oints, so abs(k)<=2*sqrt(q), then you can easily make another curve wi th q+1-k points. How? Just take an element c in the field that is not \+ a square, and consider the curve: y^2-c*fx. This is called a " }{TEXT 348 5 "twist" }{TEXT -1 142 " of the curve. It is a curve with the sam e j-invariant, so over the complex numbers it is the same curve, but o ver Fp it's not the same curve." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "fx;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(*$)%\"xG\"\"$\"\"\"F(F &!\"\"\"\"#F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "f;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,**$)%\"yG\"\"#\"\"\"F(*$)%\"xG\"\"$F( !\"\"F+F(F'F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "p;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"#r" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "k:=nops(points) - (p+1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"kG!\"*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 94 "So w e have a curve with p+1+k=71+1+(-9)=63 points. Lets now make a curve w ith p+1-k=81 points." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "Fac tor(y^2+1) mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*$)%\"yG\"\"#\" \"\"F(F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 97 "So -1 is not a squa re in Fp (p should be congruent to 1 modulo 4 in order for -1 to be a \+ square)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "f:=y^2 - (-1)*f x mod p;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG,**$)%\"yG\"\"#\"\" \"F**$)%\"xG\"\"$F*F**&\"#qF*F-F*F*F)F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "points:=[seq(seq(subs(j,[i,y]),j=[msolve(subs(x=i,f), p)]),i=0..p-1), [0,1,0] ];" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'poin tsG7]p7$\"\"$\"#?7$F'\"#^7$\"\"%F'7$F,\"#o7$\"\"&\"#M7$F0\"#P7$\"\"'\" \"\"7$F5\"#q7$\"#5\"#77$F:\"#f7$\"#6\"#87$F?\"#e7$F;\"#D7$F;\"#Y7$F@\" #@7$F@\"#]7$\"#9\"#E7$FL\"#X7$\"#;F57$FQ\"#l7$\"#7$ FX\"#_7$FYF(7$FYF*7$\"#CFQ7$Fin\"#b7$FD\"#N7$FD\"#O7$\"#FF'7$FaoF.7$\" #IFin7$Fdo\"#Z7$\"#J\"#A7$Fho\"#\\7$\"#K\"\")7$F]p\"#j7$\"#LF17$FbpF37 $F_oF07$F_o\"#m7$F3FU7$F3\"#a7$\"#R\"#G7$F[q\"#V7$\"#SF'7$F`qF.7$\"#UF U7$FcqFip7$F^qFL7$F^q\"#d7$\"#WFio7$FiqF[p7$FF\"\"(7$FF\"#k7$FfoFbp7$F fo\"#Q7$\"#[F67$FcrF87$F[pF(7$F[pF*7$FJFin7$FJFfo7$FgqF]p7$FgqF[q7$F= \"\"*7$F=\"#i7$\"#gFX7$F`s\"#`7$F^sFin7$F^sFfo7$F`pFU7$F`pFip7$F^rF?7$ F^rF`s7$\"#nFio7$FjsF[p7$\"#p\"\"#7$F]tF]t7%\"\"!F6Fat" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "nops(points);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#\")" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "if actor(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*$)-%!G6#\"\"$\"\"%\"\"\" " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 64 "Lets see, is this a cyclic gr oup and if so, what is a generator?" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "P:=points[1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\" PG7$\"\"$\"#?" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "n_times_po int_Fp(81/3,P,f,x,y,p);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7$\"#Y\"\"( " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 67 "OK, not the zero element, so \+ the group is generated by the point P." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}{MARK "0 1 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }