The cubic will be a nontrivial element of the Tate--Shafarevich group of the curve 4343B1 in Cremona's tables, which we call E. The cubic will be obtained from a rational point on an auxiliary elliptic curve F.
First, we compute that E has rank 0, and F has rank 1:
> E := EllipticCurve([ 0, 0, 1, -325259, -71398995 ]); > F := EllipticCurve([ 1, -1, 1, -24545, 1486216 ]); > CremonaReference(E); 4343b1 > RankBounds(E); 0 0 > RankBounds(F); 1 1
We take a plane cubic representing one of the nontrivial elements in the 3-Selmer group of F, which has order 3, so that its elements are all in the image of F(Q) since F(Q) has rank 1:
> SetClassGroupBounds("GRH");
> #ThreeSelmerGroup(F);
3
> coverings := ThreeDescent(F);
> coverings;
[
Curve over Rational Field defined by
-3*x^2*z - 3*x*y^2 - 27*x*y*z + 12*x*z^2 + 2*y^3 + 21*y^2*z + 3*y*z^2 - 4*z^3
]
> C := Equation(coverings[1]);
We now try to find a linear combination of C and its Hessian (which is also a plane cubic) that has j-invariant equal to the j-invariant of E. To find the right linear combination we may work geometrically (that is, with F instead of C since they are isomorphic over Qbar). We work with the family t F + H where t is an indeterminate.
> B<t> := PolynomialRing(Rationals()); > F_BR := ChangeRing(Parent(Equation(F)), B); > F_B := F_BR ! Equation(F); > H_B := Hessian(F_B); > c4,c6,Delta := Invariants(t*F_B + H_B);Alternatively we could get these invariants as follows:
> D,c4,c6 := HessePolynomials(3, 1, cInvariants(F) : Variables := [t, 1] ); > Delta := Discriminant(F)*D^3; // Solve c4(t)^3/Delta(t) = j(E) for t: > jpoly := c4^3 - jInvariant(E)*Delta; > Roots(jpoly); [ <7479/7, 1> ]
So we take the following linear combination (and replace the equation by a nicer equation):
> C2raw := 7479/7*C + Hessian(C);
> C2 := Reduce(Minimise(C2raw));
> C2;
7*x^3 + 7*x^2*y + 3*x^2*z - 4*x*y^2 - 30*x*y*z + 12*x*z^2 - 13*y^3 - 2*y^2*z -
15*y*z^2 - 17*z^3
The Jacobian of C2 is E, so C2 is a principal homogeneous space for E of index 3, and in fact it is everywhere locally soluble:
> IsIsomorphic(Jacobian(C2), E);
true
> PrimeDivisors(Integers()!Discriminant(GenusOneModel(C2)));
[ 43, 101 ]
> C2_crv := Curve(ProjectiveSpace(Parent(C2)), C2);
> IsLocallySolvable(C2_crv, 43);
true (7 + O(43) : 1 + O(43^50) : O(43))
> IsLocallySolvable(C2_crv, 101);
true (1 + O(101^50) : 32 + O(101) : 1 + O(101))
// Find the preimage of the covering map C2 -> E:
> _, _, maptoE := nCovering(GenusOneModel(C2) : E := E);
> preimage := Pullback(maptoE, E!0);
> Points(preimage); // Q-rational points
{@ @}
> TorsionSubgroup(E);
Abelian Group of order 1
We conclude that C2 has no rational points since, as E(Q) is trivial, any rational points on C2 must map to OE.