Magma V2.10-16 Mon Dec 15 2003 14:38:16 [Seed = 1] Linked at: Wed Oct 01 2003 22:14:47 Type ? for help. Type -D to quit. Loading startup file "/home/nbruin/.magmarc" > ////////////////////////////////////////////////////////////////////////////// > //(1) > > _:=PolynomialRing(Rationals()); > K := NumberField( -1 + 19*X - 3*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic91b1 := x^3 + (t - 3)*x^2 + (t^2 - 3*t + 19)*x; // Known: x = 0, infty, 1/9. > E:=EllipticCurve(cubic91b1); > > //prove that Rank(E(K))=1 by a 2-descent on an isogenous curve > Ed:=Codomain(TwoIsogeny(E![0,0])); > assert RankBound(Ed:Isogeny:=2) eq 1; > > //Generators of the MWgroup > gs:=[E|[0,0],[1/4*(t^2 - 2*t + 21) , 1/4*(3*t^2 - 6*t + 51)]]; > //gs[2] is really non-torsion: > assert TorsionBound(E,1) eq 2; > > //Construct the Mordell-Weil group as a map: > G:=AbelianGroup([2,0]); > mwmap:=mapE|a:->&+[a[i]*gs[i]:i in [1..#gs]]where a:=Eltseq(a)>; > assert IsPSaturated(mwmap,2); > P1:=ProjectiveSpace(Rationals(),1); > cov:=mapP1|[E.1,E.3]>; > > //////////////////////////////////////////// > //Chabauty now has changed considerably: It returns > //N,V,R,C, where: > // N - Upper bound computed on the number of points in Domain(mwmap) > // that map to a rational point under mwmap*cov. This bound can in fact be > // Infinity() in bad cases. > // V - A set of elements of Domain(mwmap) that have a rational image > // so, if #V eq N then all points are known. > // R - If the index of Image(mwmap) in the entire Mordell-Weil group is > // prime to R then the information computed is also valid for the entire > // Mordell-Weil group. > // C - A Coset-structure (like returned & used by CosetIntersection). Any points > // with rational image under cov that are not mentioned in V lie in the > // union of these cosets. In particular, if N eq #V then C is empty. > // The information in C is usually greatly lifted p-adically. Hence, C > // can subsequently be used for shallow-deep Brauer-Manin obstruction > // computations. > // If #C eq N-#V then each class has at most 1 point with rational image > // in it. > //////////////////////////////////////////// > // What Chabauty tries: > // - First, using finite field arguments and "Weak" shallow-shallow > // intersections, a first approximation is made > // - Using this congruence information, some small combinations in mwmap are > // tested for rationality. This gives the first approximation for V. > // - For the found points P0, the ramification index of cov at P0 is > // determined and it is determined if P0 is the only point with rational > // image in its fibre of reduction. > // - For remaining congruence classes, the system of equations is written down > // to some finite precision. This system is solved. If all solutions > // found are provably separated (i.e. hensel-liftable) then we know the > // exact number of solutions and they are Hensel-lifted to some precision. > // Points for which we run out of precision before they are separated, or > // will never be separated because they have higher multiplicity, we > // register the approximation and we flag that the returned N will be > // Infinity(). > // - Found separated points are tested if there is a small exact > // representative. If so, this is tested for having rational image and if so, > // the point is added to V (A high precision p-adic approximation to a > // small integer valued vector is easy to spot) > // - Any of the non-separated points and the separated points for which no > // explicit representative with rational image is found, is added to the > // coset structure C. > //////////////////////////////////////////// > > N,V,R:=Chabauty(mwmap,cov,5); > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1/9 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > //(2) > > K := NumberField( -1 + 19*X - 3*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic91b2 := (-t+1)*x^3 + (-t^2+4*t-3)*x^2 + (t^2-3*t+18)*x; // Known: x = 0, infty, 1, 4. > C:=HyperellipticCurve(cubic91b2); > E,CtoE:=EllipticCurve(C); > > //prove that Rank(E(K))=1 by a 2-descent on an isogenous curve > Ed:=Codomain(TwoIsogeny(E![0,0])); > assert RankBound(Ed:Isogeny:=2) eq 1; > > //Generators of the MWgroup > gs:=[E|[0,0],[-t + 1 , -4*t + 4]]; > //gs[2] is really non-torsion: > assert TorsionBound(E,10) eq 2; > > //Construct the Mordell-Weil group as a map: > G:=AbelianGroup([2,0]); > mwmap:=mapE|a:->&+[a[i]*gs[i]:i in [1..#gs]]where a:=Eltseq(a)>; > assert IsPSaturated(mwmap,2); > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > > //Chabauty at 3 would probably work, except that two points end up in the > //same fibre and this routine by default does not compute the power series > //sufficiently far to still obtain finiteness. > //Chabauty at 5 with shallow information from 3 does do the trick. > //R is a number that the index of mwmap in E(K) should be prime to in order for > //V to be the subset of G with rational image under mwmap*cov. > N,V,R:=Chabauty(mwmap,cov,5); > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (4 : 1), (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (3) > K := NumberField( -9 + 19*X + 5*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic123b1 := x^3 + (t + 5)*x^2 + (t^2 + 5*t + 19)*x; // Known: x = 0, infty, 9. > E:=EllipticCurve(cubic123b1); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (1/4*(t^2 + 2*t + 1) : 1/4*(t^2 + 2*t + 13) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=mapP1|[E.1,E.3]>; > N,V,R:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (9 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (4) > K := NumberField( -9 + 19*X + 5*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic123b2 := (-t+1)*x^3 + (-t^2-4*t+5)*x^2 + (t^2+5*t+10)*x; // Known: x = 0, infty, 1. > C:=HyperellipticCurve(cubic123b2); > E,CtoE:=EllipticCurve(C); > > //prove that Rank(E(K))=1 by a 2-descent on an isogenous curve > Ed:=Codomain(TwoIsogeny(E![0,0])); > assert RankBound(Ed:Isogeny:=2) eq 1; > > //Generators of the MWgroup > gs:=[E|[0,0],[-t + 1,-4*t + 4]]; > //gs[2] is really non-torsion: > assert TorsionBound(E,10) eq 2; > > //Construct the Mordell-Weil group as a map: > G:=AbelianGroup([2,0]); > mwmap:=mapE|a:->&+[a[i]*gs[i]:i in [1..#gs]]where a:=Eltseq(a)>; > assert IsPSaturated(mwmap,2); > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > > //My routine is sure that an argument at 5 does *not* work, because > //it thinks the shallow information at 5 is not accounted for by the > //actual points with rational image. > N,V,R:=Chabauty(mwmap,cov,7); > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (5) > K := NumberField( 27 - 5*X - 7*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic141b1 := x^3 + (t - 7)*x^2 + (t^2 - 7*t - 5)*x; // Known: x = 0, infty, 9. > E:=EllipticCurve(cubic141b1); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (1/4*(-5*t^2 + 26*t + 79) : 1/4*(25*t^2 - 130*t - 359) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=mapP1|[E.1,E.3]>; > N,V,R,cl:=Chabauty(mwmap,cov,7); > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (9 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (6) > K := NumberField( 27 - 5*X - 7*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic141b2 := (-t+1)*x^3 + (-t^2+8*t-7)*x^2 + (t^2-7*t+22)*x; // Known: x = 0, infty, 1, 169/121. > C:=HyperellipticCurve(cubic141b2); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (t^2 + t - 2 : -8*t^2 - 4*t + 28 : 1), (1/18*(5*t^2 - 8*t + 29) : 1/108*(19*t^2 - 322*t + 499) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > N,V,R,cl:=Chabauty(mwmap,cov,7); > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (169/121 : 1), (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (7) > K := NumberField( 16 + 9*X - 10*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic142b1 := x^3 + (t - 10)*x^2 + (t^2 - 10*t + 9)*x; // Known: x = 0, infty, 9. > E:=EllipticCurve(cubic142b1); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (-t^2 + 8*t + 9 : 4*t^2 - 32*t - 28 : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=mapP1|[E.1,E.3]>; > N,V,R:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (9 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (8) > K := NumberField( 16 + 9*X - 10*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic142b2 := (-t+1)*x^3 + (-t^2+11*t-10)*x^2 + (t^2-10*t+25)*x; // Known: x = 0, infty, 1. > C:=HyperellipticCurve(cubic142b2); > E,CtoE:=EllipticCurve(C); > gs:=[E|[0,0],[t^2 - 2*t + 1,8*t^2 - 12*t - 12]]; > //gs[2] is really non-torsion: > assert TorsionBound(E,10) eq 2; > assert RankBound(E) eq 1; > > //Construct the Mordell-Weil group as a map: > G:=AbelianGroup([2,0]); > mwmap:=mapE|a:->&+[a[i]*gs[i]:i in [1..#gs]]where a:=Eltseq(a)>; > assert IsPSaturated(mwmap,2); > > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (t^2 - 2*t + 1 : 8*t^2 - 12*t - 12 : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > > N,V,R:=Chabauty(mwmap,cov,3); Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (9) > K := NumberField( X^3 - 11*X^2 + 19*X - 25 ); _ := PolynomialRing( K ); > cubic155b1 := x^3 + (t - 11)*x^2 + (t^2 - 11*t + 19)*x; // Known: x = 0, infty, 9. > E:=EllipticCurve(cubic155b1); > > //prove that Rank(E(K))=1 by a 2-descent on an isogenous curve > Ed:=Codomain(TwoIsogeny(E![0,0])); > assert RankBound(Ed:Isogeny:=2) eq 1; > > gs:=[E|[0,0],[9 , -3*t + 3]]; > //gs[2] is really non-torsion: > assert TorsionBound(E,10) eq 2; > > //Construct the Mordell-Weil group as a map: > G:=AbelianGroup([2,0]); > mwmap:=mapE|a:->&+[a[i]*gs[i]:i in [1..#gs]]where a:=Eltseq(a)>; > assert IsPSaturated(mwmap,2); > P1:=ProjectiveSpace(Rationals(),1); > cov:=mapP1|[E.1,E.3]>; > N,V,R:=Chabauty(mwmap,cov,7); > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (9 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > //(10) > K := NumberField( X^3 - 11*X^2 + 19*X - 25 ); _ := PolynomialRing( K ); > cubic155b2 := (t-1)*x^3 + (t^2-12*t+11)*x^2 + (-t^2+11*t+6)*x; // Known: x = 0, infty, 1. > C:=HyperellipticCurve(cubic155b2); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E:UseHomogeneousSpaces:=false); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (-t^2 + 11*t - 14 : t^2 - 6*t - 11 : 1), (1/100*(-29*t^2 + 419*t - 26) : 1/1000*(1503*t^2 - 8108*t - 4743) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > N,V,R,cl:=Chabauty(mwmap,cov,3); Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (11) > K := NumberField( -8 + 9*X + 14*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic158b1 := x^3 + (t + 14)*x^2 + (t^2 + 14*t + 9)*x; // Known: x = 0, infty, 1, 9. > E:=EllipticCurve(cubic158b1); > > gs:=[E|[0,0], > [-t-3,1/2*(-t^2-19*t-8)], > [1/8*(7*t^2+93*t),1/8*(13*t^2+183*t+136)]]; > //gs[2] is really non-torsion: > assert TorsionBound(E,10) eq 2; > assert RankBound(E) eq 2; > > //Construct the Mordell-Weil group as a map: > G:=AbelianGroup([2,0,0]); > mwmap:=mapE|a:->&+[a[i]*gs[i]:i in [1..#gs]]where a:=Eltseq(a)>; > //assert IsPSaturated(mwmap,2); > > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (-t - 3 : 1/2*(-t^2 - 19*t - 8) : 1), (1/8*(7*t^2 + 93*t) : 1/8*(13*t^2 + 183*t + 136) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=mapP1|[E.1,E.3]>; > > N,V,R,cl:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (4 : 1), (9 : 1), (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (12) > K := NumberField( 8 + 25*X - 18*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic254b2 := (-t+1)*x^3 + (-t^2+19*t-18)*x^2 + (t^2-18*t+33)*x;// Known: x = 0, infty, 1, 1/4. > C:=HyperellipticCurve(cubic254b2); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E:UseHomogeneousSpaces:=false); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (t^2 - 2*t + 1 : 16*t^2 - 28*t - 4 : 1), (t^2 - 18*t + 33 : 4*t^2 - 72*t + 132 : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > N,V,R,cl:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1 : 1), (1/4 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (13) > K := NumberField( X^3 + 10*X^2 - 63*X + 4 ); _ := PolynomialRing( K ); > cubic326a2 := -t*x^3 + (-t^2 - 10*t)*x^2 + 4*x;// Known: x = 0, infty. > C:=HyperellipticCurve(cubic326a2); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E:UseHomogeneousSpaces:=false); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (1/968*(827*t^2 + 11925*t + 420) : 1/42592*(-102011*t^2 - 1467437*t + 126492) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > N,V,R,cl:=Chabauty(mwmap,cov,5); > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (14) > K := NumberField( -16 - 7*X + 38*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic446b1 := x^3 + (t + 38)*x^2 + (t^2 + 38*t - 7)*x;// Known: x = 0, infty, 1. > C:=HyperellipticCurve(cubic446b1); > E,CtoE:=EllipticCurve(C); > assert RankBound(E) eq 1; > assert TorsionBound(E,10) eq 2; > gs:=[E![0,0],E![1/4*(t^2 + 39*t + 36),2*t^2 + 78*t + 64]]; > G:=AbelianGroup([2,0]); > mwmap:=mapE|a:->&+[a[i]*gs[i]:i in [1..#gs]]where a:=Eltseq(a)>; > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > N,V,R:=Chabauty(mwmap,cov,3); Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (15) > K := NumberField( 4 + 17*X - 6*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic106b2 := (-t+1)*x^3 + (-t^2+7*t-6)*x^2 + (t^2-6*t+21)*x;// Known: x = 0, infty, 1, 9. > C:=HyperellipticCurve(cubic106b2); > E,CtoE:=EllipticCurve(C); > assert RankBound(E) eq 2; > assert #TorsionSubgroup(E) eq 2; > gs:=[E![0,0],E![1/4*(-3*t^2-t),1/4*(7*t^2+33*t+4)],E![t^2-6*t+17,3*t^2-19*t+60]]; > G:=AbelianGroup([2,0,0]); > mwmap:=mapE|a:->&+[a[i]*gs[i]:i in [1..#gs]]where a:=Eltseq(a)>; > > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > N,V,R,c5:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > OK:=IntegerRing(K); > c31,R31:=RelevantCosets(mwmap,cov,Support(31*OK)); > R:=LCM(R,R31); > csi:=CosetIntersection(c5,c31:Weak); > assert #csi[2] eq 0; > N:=N-#c5[2]; > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (9 : 1), (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (16) > K := NumberField( 4 + X + 10*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic122b2 := (-t + 1)*x^3 + (-t^2 - 9*t + 10)*x^2 + (t^2 + 10*t + 5)*x;// Known: x = 0, infty, 1, 25. > C:=HyperellipticCurve(cubic122b2); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E:UseHomogeneousSpaces:=false); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (-t + 1 : -4*t + 4 : 1), (2*t^2 + 18*t - 8 : t^2 + 11*t - 32 : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > N,V,R:=Chabauty(mwmap,cov,3); Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (25 : 1), (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (17) > K := NumberField( X^3 - 11*X^2 + 35*X - 9 ); _ := PolynomialRing( K ); > cubic129a1 := x^3 + (t - 11)*x^2 + (t^2 - 11*t + 35)*x;// Known: x = 0, infty, 1, 289/49. > > C:=HyperellipticCurve(cubic129a1); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E:UseHomogeneousSpaces:=false); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (1/4*(-t^2 + 2*t + 19) : 1/4*(-t^2 + 2*t - 17) : 1), (1/16*(-7*t^2 + 50*t - 11) : 1/8*(-4*t^2 + 17*t + 13) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > N,V,R:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (289/49 : 1), (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (18) > K := NumberField( X^3 - 11*X^2 + 35*X - 9 ); _ := PolynomialRing( K ); > cubic129a2 := (-t+5)*x^3 + (-t^2+16*t-55)*x^2 + (5*t^2-55*t+166)*x;// Known: x = 0, infty, 9. > > C:=HyperellipticCurve(cubic129a2); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (1/9*(5*t^2 - 55*t + 166) : 1/27*(-46*t^2 + 488*t - 1466) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > > N,V,R:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (9 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (19) > K := NumberField( X^3 - 8*X^2 - 11*X + 2 ); _ := PolynomialRing( K ); > cubic158b2 := (t-1)*x^3 + (t^2-9*t+8)*x^2 + (-t^2+8*t+9)*x;// Known: x = 0, infty, 1, 9. > > C:=HyperellipticCurve(cubic158b2); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (t - 1 : -4*t + 4 : 1), (1/2*(-3*t^2 + 27*t + 4) : t^2 - 11*t + 14 : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > > N,V,R:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (9 : 1), (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (20) > K := NumberField( -4 + 17*X + 2*X^2 + X^3 ); _ := PolynomialRing( K ); > cubic166b1 := x^3 + (t + 2)*x^2 + (t^2 + 2*t + 17)*x;// Known: x = 0, infty, 1/4. > > C:=HyperellipticCurve(cubic166b1); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (1/4*(t^2 + 3*t + 24) : -t^2 - 3*t - 20 : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > > N,V,R:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1/4 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (21) > K := NumberField( -4 + 17*X + 2*X^2 + X^3 ); _ := PolynomialRing( K ); > //originally, it said 166b1 here, just as above. I assume it's b2. > cubic166b2 := (-t+1)*x^3 + (-t^2-t+2)*x^2 + (t^2+2*t+13)*x;// Known: x = 0, infty, 1. > > C:=HyperellipticCurve(cubic166b2); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (-t + 1 : 4*t - 4 : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > > N,V,R:=Chabauty(mwmap,cov,5); Adjusted stored zech d: 8, qd: 390625 dpoly_ideal_gcd_poly_ring: create ext 8 > assert IsPSaturated(mwmap,3); > assert N eq #V and PrimeDivisors(R) subset {2,3}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1 : 1), (0 : 1), (1 : 0) } > > ////////////////////////////////////////////////////////////////////////////// > // (22) > K := NumberField( X^3 + 5*X^2 + 3*X - 25 ); _ := PolynomialRing( K ); > cubic215a1 := x^3 + (t + 5)*x^2 + (t^2 + 5*t + 3)*x;// Known: x = 0, infty, 1. > > C:=HyperellipticCurve(cubic215a1); > E,CtoE:=EllipticCurve(C); > bl,G,mwmap:=PseudoMordellWeilGroup(E); > assert bl; > [mwmap(g):g in OrderedGenerators(G)]; [ (0 : 0 : 1), (1 : t + 3 : 1), (1/16*(-3*t^2 + 10*t + 41) : 1/16*(9*t^2 + 20*t + 127) : 1) ] > P1:=ProjectiveSpace(Rationals(),1); > cov:=Expand(Inverse(CtoE)*mapP1|[C.1,C.3]>); > > N,V,R:=Chabauty(mwmap,cov,3); Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 Adjusted stored zech d: 12, qd: 531441 dpoly_ideal_gcd_poly_ring: create ext 12 > assert N eq #V and PrimeDivisors(R) subset {2}; > {EvaluateByPowerSeries(cov,mwmap(g)):g in V}; { (1 : 1), (0 : 1), (1 : 0) } Total time: 58.229 seconds, Total memory usage: 39.27MB