|
A q-cyclic cover of the projective line is a curve C which admits
a degree q morphism to P1 such that the associated
extension of function fields is (geometrically) cyclic. By Kummer theory,
such a curve has an affine model of the form yq = f(x) (at least when
the base field contains the q-th roots of unity). This class
of curve includes hyperelliptic curves. Current functionality for cyclic
covers includes testing local solubility, searching for points and performing
descents on curves and their Jacobians when they are defined over a number field.
Most functionality is implemented in the cases where f(x) is a separable
polynomial of arbitrary degree and q is prime. One notable exception is that
the method of descent on the curve is available for any f(x) that is q-th
power free.
A point on a cyclic cover C : yq = fdxd + fd - 1xd - 1 + ... + f0
is specified by a triple representing a point in the appropriate
weighted projective plane.
When d = Degree(f(x)) is divisible by q, we consider points the
weighted projective plane P2(1:d/q:1). In this case a
point is represented by a triple [X, Y, Z] satisfying
Yq = fdXd + fd - 1Xd - 1Z + ... + f0Zd.
When d = Degree(f(x)) is not divisible by q, we consider points
in the weighted projective plane P2(q:d:1). In this case a
point is represented by a triple [X, Y, Z] satisfying
Yq = fdXd + fd - 1Xd - 1Zq + ... + f0Zdq.
Points(f, q) : RngUPolElt, RngIntElt -> SetIndx
Bound: RngIntElt Default: 0
DenominatorBound: RngIntElt Default: 0
NPrimes: RngIntElt Default: 0
For a polynomial f defined over a number field (or Q), this searches
for rational points on the curve yq = f(x). The search region is
controlled by the parameters Bound (which must be specified) and
DenominatorBound. The function returns a set of triples (x, y, z)
satisfying yq = F(x, z) where F(x, z) is the homogenisation of f(x)
taking x to have weight LCM(q,Degree(f(x)))/Degree(f(x)).
The algorithm, and the parameters, are the same as for
RationalPoints of a hyperelliptic curve.
HasPoint(f, q, v) : RngUPolElt, RngIntElt, RngOrdIdl -> BoolElt, SeqEnum
For a polynomial f defined over a number field k, this checks if the
curve defined by yq=f(x) has any points over the completion kv.
The second return value is a triple of elements in the completion
of k at v giving a point on the curve. The triple (x, y, z) returned
satisfies yq = F(x, z) where F(x, z) is the homogenisation of f(x) taking
x to have weight LCM(q,Degree(f(x)))/Degree(f(x)).
The current implementation for testing local solubility of
cyclic covers is polynomial time in the cardinality of the residue field,
making it somewhat impractical for larger primes.
For a polynomial f defined over a number field k, this returns true
if and only if the curve yq=f(x) has points over all
nonarchimedean completions of k.
Let C be a curve with Jacobian J and suppose ψ: A -> J is an
isogeny of abelian varieties. We say that a morphism of curves π : D -> C
is a ψ-covering of C if, over an algebraic closure, π
is isomorphic as a cover to the pull-back of an embedding of C into J along ψ.
Now suppose that C : yq = f(x) is a q-cyclic cover of the projective
line defined over a number field k. Any primitive q-th root of unity ζ
gives rise to an automorphism: ι sending a point (x, y) to (x, ζ y). This
induces an automorphism of the Jacobian. Hence the endomorphism ring of the Jacobian
contains the cyclotomic ring Z[ζ], and in particular the endomorphism
φ = 1 - ζ. The φ-Selmer set of C classifies isomorphism classes of
φ-coverings of C which are everywhere locally soluble. There is an action of
ι on these coverings. The quotient by this action is known as the fake φ-Selmer set
of C. If this set is empty, then C has no k-rational points. This can happen even if
C itself has points everywhere locally. Even when this set is non-empty, it gives
information about rational points on C. When q = 2, φ is multiplication by 2,
in which case the φ-Selmer set is the same as the 2-Selmer set
described in TwoCoverDescent.
PrimeBound: RngIntElt Default: 0
PrimeCutOff: RngIntElt Default: 0
KnownPoints: Set Default:
SetVerbose("CycCov", n): Maximum: 3
Computes the fake φ-Selmer set of the cyclic cover C: yq=f(x)
as an abstract set. The first return value is the fake φ-Selmer set given
as a subset of the cartesian product of number fields having defining polynomials
the irreducible factors of f. The map returned is from this cartesian product
into the abstract group A(S, q) involved in the computation (the
unramified outside S subgroup of the quotient of the etale algebra associated
to the ramification points of C by the subgroup generated by scalars and q-th powers).
The input f must be a q-th power free polynomial defined over
a number field k with class number 1.
The optional parameters PrimeBound and PrimeCutoff have the same
meaning as those used the TwoCoverDescent for hyperelliptic curves.
Only good primes up to PrimeBound and bad primes up to PrimeCutoff
will be considered in the local computations. If either of these parameters is
not set to default, the set returned might be strictly larger than the fake
φ-Selmer set.
One can obtain a lower bound for the size of the φ-Selmer set by considering
the images of known global points on C. This often speeds up the computation
considerably as the first few primes might be sufficient to show that the
φ-Selmer set is equal to the set of images of the known rational points.
A set of known points may be passed in using the parameter KnownPoints.
These should be given as triples of the type returned by RationalPoints.
The following computation shows that the genus 15 curve defined by the
equation y 7=2x 7 + 6 has no rational points even though it is everywhere locally solvable.
> _<x> := PolynomialRing(Rationals());
> RationalPoints(3*x^7+6,7 : Bound := 1000);
{@ @}
> HasPointsEverywhereLocally(3*x^7+6,7);
true
> time Sel := qCoverDescent(3*x^7+6,7 : PrimeBound := 1000);
Time: 0.450
> Sel;
Some of the descent algorithms described below must work with a cyclic
cover yq = f(x) where f(x) is of the form c.h(x) where h
is a monic integral polynomial and c is a constant (equal to 1 in the case
that the degree d of f is not divisible by q). Such an model can be
obtained using the intrinsic MonicModel described below.
If the input is not of the required form, MonicModel
will be called automatically.
Returns a polynomial g(x) of the form c.h(x) where h
is monic and integral and c lies in the base ring of the input polynomial, f.
If the degree of the input polynomial is not divisible by q then g will
itself be monic and integral. The second return value is a pair of
polynomials a(x), b(y) giving a change of variables which determine an
isomorphism between the cyclic covers yq = f(x) and yq = g(x).
Suppose J is the Jacobian of the cyclic cover C defined by yq=f(x)
over a field k containing the q-th roots of unity. If k is a number
field, then the φ-Selmer group of J is a finite group which
contains J(k)/φ(J(k)). Computing the φ-Selmer group can be
used to give an upper bound for the rank of J(k). In the case q = 2,
this reduces to the 2-Selmer group computed with TwoSelmerGroup.
For q prime the φ-Selmer group may be computed using an algorithm
of Poonen-Schaefer [PS97]. Their algorithm actually
computes a fake Selmer group, which is a quotient of the true Selmer
group by a subgroup of order dividing q.
When the base field does not contain the q-th roots
of unity, one still obtains information by computing the φ-Selmer group
over the cyclotomic extension. For details see [PS97],
or consider the example below.
ReturnRawData: BoolElt Default: false
SetVerbose("Selmer", n): Maximum: 3
For a polynomial f over a number field k, this computes the
(fake) φ-Selmer group of the Jacobian of the curve
yq = f(x) over the field k(μq) obtained by adjoining the
q-th roots of unity to k. The polynomial f(x) must be separable
and q must be prime.
There are two steps in the algorithm which may require a significant
amount of time: the first is the computation of class groups of the
extensions of k(μq) given by the irreducible factors of f(x); the
second is the computation of the local images of the descent map at
the prime(s) above q.
The (fake) Selmer group is returned as a finite abelian group S, together
with a map from S to some affine algebra A, which represents the
standard map from the Selmer group to A * /k * (A * )q or to A * /(A * )q
correspondingly as the degree of f(x) is or is not divisible by q.
When called with ReturnRawData the program will yield three
additional return values, expvecs, factorbase and selpic1.
The first two are used to specify the images in A * /k * (A * )q of the
(fake) Selmer group generators (in unexpanded form). This is done exactly
as for TwoSelmerGroup. selpic1 is an element of the supergroup
containing the (fake) Selmer group, or it is the empty set. This specifies
the coset of the (fake) Selmer group corresponding to the (fake) Selmer
set of the Pic1 torsor as described in [Cre12]. When the
curve has points everywhere locally this determines whether or not the torsor
is divisible by φ in Sha, which in turn yields more information on the
rank.
Note: this function calls PicnDescent and repackages the information.
Safety: RngIntElt Default: 0
Fields: SetEnum Default: {{ }}
SetVerbose("Selmer", n): Maximum: 3
This function returns information at a slightly lower level than
PhiSelmerGroup. It returns eight values, which we will call
dimSel, SelfakeJ, SelfakePic1, ranktorsglobal, ASqmodktoA, muJktors, toVec, FB.
The return value ASqmodktoA is a map m:G -> A, where A = k[x]/f(x) and G is an elementary abelian q-group.
The group G is isomorphic to the unramified outside S subgroup of A * modulo q-th powers and scalars.
(Here S is the set of bad primes used for the computation.)
The value dimSel is an upper bound for the rank of the φ-Selmer group of J/k. It is not always sharp.
It tries to determine the kernel of the map from Selmer to fake Selmer but doesn't always succeed.
SetVerbose("Selmer",1) should give some details about this.
The group SelfakeJ is the subgroup of G corresponding to the fake-φ-Selmer group of J/k.
The return value SelfakePic1 is <SelfakeJ,g> with g in G such that the coset (g + (SelfakeJ)) in G
corresponds to the fake-φ-Selmer set of Pic1/k.
The value ranktorsglobal is a lower bound for rank of J(k)[φ]
(just coming from factorization of f over k, so not sharp in all cases).
The group muJktors is the subgroup of G corresponding to the image under the
descent map of the part of J(k)[φ] computed above.
The return values toVec and FB are similar to expvecs and factorbase returned by TwoSelmerGroup.
There are optional parameters which have the following roles.
The local images are determined by computing images of random points
until they generate a group that is large enough.
Setting Safety := N will force it to compute the images of N extra
random points (and throw an error if they generate a larger group).
The parameter Fields has the same role as in TwoSelmerGroup.
RankBounds(f, q) : RngUPolElt, RngIntElt -> RngIntElt, RngIntElt
ReturnGenerators: BoolElt Default: false
SetVerbose("Selmer", n): Maximum: 3
An upper (or a lower and upper) bound for the rank of the Jacobian
of the cyclic cover defined by yq = f(x). The upper bound is obtained
by performing a descent as described above and incorporates the information
on the Pic1 torsor thus obtained. The lower bound is obtained by
a naive (and rather inefficient) search for divisors on the curve.
If the optional parameter ReturnGenerators is set to true, then
a third value will be returned. This will be a list of univariate
polynomials defining divisors on P1 that lift to divisors
on the curve. The images of these in the Mordell--Weil group generate
a subgroup of rank at least as large as the lower bound provided.
Independence of these points is determined by considering their
images in the (fake) Selmer group.
In this example we use descents to determine both the rank of the
Mordell--Weil group and the 3-primary part of Sha for the Jacobian
J of a genus 4 curve C over the rationals.
> _<x> := PolynomialRing(Rationals());
> f := 3*(x^6 + x^4 + 4*x^3 + 2*x^2 + 4*x + 3);
> k := CyclotomicField(3);
> IsIrreducible(PolynomialRing(k)!f);
true
> SelJ,m,expvecs,fb,SelPic1 := PhiSelmerGroup(f,3 : ReturnRawData);
> Ilog(3,#SelJ);
2
In this example the map from the genuine Selmer group to the
fake Selmer group has a kernel of order 3. This is because
f has degree divisible by q = 3 and is irreducible.
Hence the φ-Selmer group has 3-rank 3. The fact that
f is irreducible also implies that there is no nontrivial
φ-torsion on J defined over k. Thus the
φ-Selmer group gives an upper bound of 2 * 3 = 6 for the
rank of J over k and an upper bound of 3 for the
rank over Q (see [PS97]). We can use the
information about the Pic 1 torsor to get a better bound
> HasPointsEverywhereLocally(f,3);
true
> SelPic1;
This means that the Pic 1 torsor represents a φ-torsion
class in the Shafarevich-Tate group of J that is not divisible
by φ. In particular it is nontrivial, and because the
Cassels-Tate pairing is alternating this implies the φ-torsion
subgroup of Sha contains a nontrivial subgroup with even 3-rank.
Hence, we deduce that J(k)/φ(J(k)) has 3-rank
at most 3 - 2 = 1, and consequently that J(Q) has rank ≤1.
Calling RankBounds will deduce these bounds, and
search for generators to obtain a lower bound.
> r_l, r_u, gens := RankBounds(f,3 : ReturnGenerators);
> [r_l,r_u];
[1,1]
> gens;
[*
x^3 - x^2 + 4*x + 4
*]
This polynomial defines a divisor on P 1 that lifts to
a degree 3 divisor D on C : y 3 = f(x). One way to
verify this is the following:
> K := NumberField(gens[1]);
> IsPower(Evaluate(f,K.1),3);
true 1/4*(-3*K.1^2 + 9*K.1 + 6)
Let D 0 denote the pullback of some point P ∈P 1
under the degree 3 map C -> P 1. Then
D - D 0 is a degree 0 defined over the rationals.
According to RankBounds its class has infinite order
in J(Q). This was determined by considering its image
under the composition,
J(Q) -> J(k) -> Sel φ(J/k). Since
there is no nontrivial φ-torsion, this amounts to
saying that the image is nontrivial. We can verify this
with the following computations (carried out internally
by RankBounds).
> A<theta> := Domain(m); // the algebra representing Sel
> D := Evaluate(gens[1],theta);
> imD := m(D);
> assert imD ne SelJ!0;
> assert imD in SelJ;
Since the rank over Q has been computed unconditionally
it follows that the φ-torsion subgroup of Sha is
isomorphic to (Z/3) 2, and since it contains
a element not divisible by φ in Sha one can deduce
that the 3-primary part of Sha is also isomorphic to
(Z/3) 2.
The (fake) φ-Selmer set of the curve C : yq = f(x) defined over a number field
k is computed using a map which sends a point (x, y) of C to x - θ, where θ
is a generic root of f. This map takes values in the product of the extensions of k
defined by the irreducible factors of f(x). More generally one can specify
a partial descent map as follows. For each irreducible factor fi(x) of f(x),
fix an extension Ki/k and an irreducible factor hi(x) ∈Ki[x] of fi(x).
The map sending (x, y) to (h1(x), ..., hn(x)) induces a well defined map from C(k)
to an appropriate quotient of the units in the product of the Ki. A partial
descent computes the set of elements which restrict into the image of C(kv)
for every prime v of k. This set gives information on the set of rational
points of C. If it is empty, then the curve has no rational points.
Geometrically this set can be understood as follows. The coverings parameterised
by the φ-Selmer set are Galois covers of C with group isomorphic (as a Galois module)
to the φ-torsion subgroup of the Jacobian. By Galois theory, any Galois submodule
gives rise to intermediate coverings. A partial descent computes a set of everywhere
locally solvable intermediate coverings corresponding to some Galois submodule
of J[φ].
PrimeBound: RngIntElt Default: 0
PrimeCutoff: RngIntElt Default: 0
KnownPoints: Set Default:
SetVerbose("CycCov", n): Maximum: 3
Performs a partial descent on the curve yq = f(x) with respect to the descent map
given by factors. The map returned is from this cartesian product
into the abstract group A(S, q) involved in the computation (the
unramified outside S subgroup of the quotient of the etale algebra associated
to the orbits of ramification points of C determined by factors by the
subgroup generated by scalars and q-th powers).
The input f must be a separable polynomial defined over a number field k
with class number 1. For each irreducible factor hi ∈k[x] of f, the
list factors must contain an irreducible factor of hi defined over some
(possibly trivial) extension of k. The optional parameters are the same
as for qCoverDescent.
Consider the cyclic cover D : y3=3(x2 + 1)(x2 + 17)(x2 - 17).
> _<x>:=PolynomialRing(Rationals());
> f := 3*(x^2+1)*(x^2+17)*(x^2-17);
> pts := RationalPoints(f,3 : Bound:=100);
> pts;
{@
[ -1, -12, 1 ],
[ 1, -12, 1 ]
@}
So this appears to have only two rational points. We now apply partial descent by only factorising the third factor as follows:
> K<th> := NumberField(x^2-17);
> factor := Factorisation(x^2-17,K)[1,1];
> time selmerset, algebra:=qCoverPartialDescent(
> 3*(x^2+1)*(x^2+17)*(x^2-17),[*x^2+1,x^2+17,factor*],3
> : KnownPoints := pts, PrimeBound := 1000 );
Time: 0.530
> selmerset;
{
<1, 9, $.1 + 9>,
<1, 9, 2*$.1 + 2>
}
> delta := <1,9,2+2*th>;
Each element of selmerset corresponds to a covering of D and every rational point on D lifts to one of these two coverings. For example δ
corresponds to a covering Yδ of D with defining equations
λ2y13=x2 + 1,
9λ2y23=x2 + 17,
(2θ + 2)λ y33= x - θ, where θ is a square root of 17. This covering of D also evidently covers the genus one curve defined over Q(θ), C : (2θ + 2)v3 = (x2 + 1)(x - θ) .
One can now use the method of Elliptic Curve Chabauty to find all points of Yδ(K) which map to points of D(Q).
Namely any such point gives rise to a point of C(K) with x-coordinate in Q. Provided we can obtain generators for C(K),
such points can be determined using Chabauty.
> P2<x,v,w>:=ProjectivePlane(K);
> C:=Curve(P2, -(delta[3])*v^3 + (x^2+w^2)*(x-th*w) );
> E,CtoE:=EllipticCurve(C);
> twotors := TorsionSubgroup(E);
> #twotors;
1
> covers,coverstoE:=TwoDescent(E);
> #covers;
1
> cover:=covers[1];
> covertoE:=coverstoE[1];
> pts:={@pt@covertoE : pt in RationalPoints(cover : Bound:=100)@};
> pts;
{@ (1/128*(-153*th + 1377) : 1/1024*(-8109*th + 28917) : 1),
(1/128*(-153*th + 1377) : 1/1024*(6885*th - 17901) : 1),
(1/194688*(-171346689*th + 708942857) : 1/60742656*(-4566609746937*th
+ 18826158509345) : 1), (1/194688*(-171346689*th + 708942857) :
1/60742656*(4566537140481*th - 18825505051241) : 1) @}
> gen := pts[1];
This shows that E(K) simeq Z, so gen generates a finite index subgroup.
> A:=FreeAbelianGroup(1);
> AtoE:=map<A -> E | elt :-> Eltseq(elt)[1]*gen >;
To apply Chabauty, we want to use a map E -> P1 such that the composition
C -> E -> P1 sends (x, v, w) to x.
> P1:=ProjectiveSpace(Rationals(),1);
> CtoE;
Mapping from: CrvPln: C to CrvEll: E
with equations :
1/16*(9*th - 153)*v
1/128*(-729*th + 1377)*x
-1/17*th*x + w
and inverse
th*$.2
1/16*(-9*th + 153)*$.1
$.2 + 1/128*(1377*th - 12393)*$.3
> EtoP1:=map<E -> P1 | [th*E.2,E.2 + 1/128*(1377*th - 12393)*E.3]>;
> Chabauty(AtoE,EtoP1);
{
-A.1
}
126
> Chabauty(AtoE,EtoP1 : IndexBound:=126);
{
-A.1
}
126
> pointC:= (-A.1)@AtoE@@CtoE;
> pointC;
(-1 : -1 : 1)
Any preimage of this point on Yδ has x = - 1, and as such
must lie above ( - 1, - 12) ∈D(Q). A similar argument proves that
the only rational point coming from the other element of the partial
Selmer set is (1, - 12), proving D(Q) = { (1, 12), ( - 1, - 12)}.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|