Points on the Kummer Surface

Points are given by their projective coordinates, normalized depending on the base field.

Creation of Points

K ! 0: SrfKum, RngIntElt -> SrfKumPt

Returns the image of the identity element on the Kummer surface \(K\), which is normalized to be the origin \((0 : 0 : 0 : 1)\).

K ! [x1, x2, x3, x4]: SrfKum, [ RngElt ] -> SrfKumPt

Returns the point on the Kummer surface \(K\) defined by the projective coordinates \(x_1\), \(x_2\), \(x_3\), and \(x_4\).

K ! P: SrfKum, SrfKumPt -> SrfKumPt
K ! P: SrfKum, JacHypPt -> SrfKumPt

Given a point \(P\) on the Jacobian of \(K\), or on a Kummer surface for which \(K\) is a base extension, this returns the point on \(K\).

IsPoint(K, S): SrfKum, [RngElt] -> BoolElt, SrfKumPt

Given a sequence \(S = [x_1,x_2,x_3,x_4]\) of elements of the base field of \(K\), the function returns true if the point specified by the sequence defines the homogeneous coordinates of a point on the Kummer surface \(K\). If so, the corresponding point on \(K\) is returned as the second value.

Points(K, [x1, x2, x3]): SrfKum, [RngElt] -> SetIndx

Returns the indexed set of points on the Kummer surface \(K\) with first three coordinates given by the sequence \([x_1, x_2, x_3]\).

Access Operations

P[i]: SrfKumPt, RngIntElt -> RngElt

Returns the \(i\)-th coordinate of the point \(P\), for \(1\leq i\leq 4\).

Eltseq(P): SrfKumPt -> SeqEnum
ElementToSequence(P): PtHyp -> SeqEnum

Given a point \(P\) on a Kummer surface, the function returns the coordinates of \(P\) as a sequence.

Predicates on Points

P eq Q: SrfKumPt, SrfKumPt -> BoolElt

Given two points on the same Kummer surface, this returns true if and only if the points \(P\) and \(Q\) are equal.

P ne Q: SrfKumPt, SrfKumPt -> BoolElt

Given two points on the same Kummer surface, this returns false if and only if the points \(P\) and \(Q\) are equal.

Arithmetic of Points

- P: SrfKumPt -> SrfKumPt

Returns the negation of the point \(P\) on the Kummer surface, equal to \(P\) itself.

n * P: RngIntElt, SrfKumPt -> SrfKumPt
P * n: SrfKumPt, RngIntElt -> SrfKumPt

Returns the \(n\)-th multiple of the point \(P\) on the Kummer surface \(K\).

Double(P): SrfKumPt -> SrfKumPt

Returns the double \(2*P\) of the point \(P\).

PseudoAdd(P1, P2, P3): SrfKumPt, SrfKumPt, SrfKumPt -> SrfKumPt

Let \(P\) and \(Q\) be points on the Jacobian \(J\) of a genus \(2\) curve. Given the images \(P_1\), \(P_2\), and \(P_3\) on the Kummer surface of points \(P\), \(Q\), and \(P-Q\) on \(J\), the function returns the image of \(P+Q\).

PseudoAddMultiple(P1, P2, P3, n): SrfKumPt, SrfKumPt, SrfKumPt, RngIntElt -> SrfKumPt

Let \(P\) and \(Q\) be points on the Jacobian \(J\) of a genus \(2\) curve. Given the images \(P_1\), \(P_2\), and \(P_3\) on the Kummer surface of points \(P\), \(Q\), \(P-Q\) on \(J\), the function returns the image of \(P + n*Q\).

Rational Points on the Kummer Surface

RationalPoints(K, Q): SrfKum, [RngElt] -> SetIndx

Given the Kummer surface of the Jacobian of a genus \(2\) hyperelliptic curve defined over a ring \(R\) and sequence \(Q\) of three elements of \(R\), the function returns an indexed set containing those points on \(K\) whose first three coordinates correspond to the three terms of \(Q\).

Example: Searching Points on a Kummer Surface (ex-51064e)

Run in calculator (opens in a new tab)

We search for some points on the Kummer surface of the hyperelliptic curve \(y^2=x^5-7\) defined over the rational field.

> P<x> := PolynomialRing(Rationals());
> C := HyperellipticCurve(x^5-7);
> Genus(C);
2
> J := Jacobian(C);
> K := KummerSurface(J);
> K;
Kummer surface of Jacobian of Hyperelliptic Curve defined by
    y^2 = x^5 - 7 over Rational Field
> Points(K, [0,1,2]);
{@ (0 : 1 : 2 : 4) @}
> Points(K, [1,3,2]);
{@ @}
> Points(K, [0,1,3]);
{@ (0 : 1 : 3 : 9) @}

Run in calculator (opens in a new tab)

Pullback to the Jacobian

Points(J, P): JacHyp, SrfKumPt -> SetIndx
RationalPoints(J, P): JacHyp, SrfKumPt -> SetIndx

Given a point \(P\) on the Kummer surface associated to the Jacobian \(J\) (of a genus \(2\) curve), the function returns the indexed set of points on \(J\) mapping to \(P\).