Operations on Point Sets
Each elliptic curve \(E\) has associated with it a family of point sets of \(E\) indexed by coefficient rings. These point sets, not \(E\), are the objects in which points lie. If \(K\) is the base ring of \(E\) and \(L\) is some extension of \(K\) then the elements of the point set \(E(L)\) comprise all points lying on \(E\) whose coordinates are in \(L\).
There is a distinguished point set \(E(K)\) of \(E\) which is called the base point set of \(E\). Many intrinsics (such as #, or TorsionSubgroup), strictly speaking, only make sense when applied to point sets; as a convenience, when \(E\) is passed to these functions the behaviour is the same as if the base point set \(E(K)\) were passed instead. It is important to remember, however, that \(E\) and \(E(K)\) are different objects and will not always behave in the same manner.
The above statements are equally valid if the elliptic curve \(E\) is replaced by some subgroup scheme \(G\). Moreover, the types of the point sets of \(G\) and \(E\) are the same, and similarly for points. (They may be distinguished by checking the type of the scheme of which they are point sets.)
Creation of Point Sets
- E(L): CrvEll, Rng -> SetPtEll
- PointSet(E, L): CrvEll, Rng -> SetPtEll
Given an elliptic curve \(E\) (or a subgroup scheme thereof) and an extension \(L\) of its base ring, this function returns a point set whose elements are points on \(E\) with coefficients in \(L\).
- E(m): CrvEll, Map -> SetPtEll
- PointSet(E, m): CrvEll, Map -> SetPtEll
Given an elliptic curve \(E\) (or a subgroup scheme thereof) and a map \(m\) from the base ring of \(E\) to a field \(L\), this function returns a point set whose elements are points on \(E\) with coefficients in \(L\). The map is retained to permit coercions between point sets.
Associated Structures
- Category(H): SetPtEll -> Cat
- Type(H): SetPtEll -> Cat
Given a point set \(H\) of an elliptic curve, returns the category
SetPtEllof point sets of elliptic curves.
Predicates on Point Sets
- H1 eq H2: SetPtEll, SetPtEll -> BoolElt
Returns whether the two point sets are equal. That is, whether the point sets have equal coefficient rings and elliptic curves (subgroup schemes).
- Example: Point Sets over a Finite Field (ex-127ba4)
Run in calculator (opens in a new tab)
We create an elliptic curve \(E\) over GF(5) and then construct two associated point sets:
> K := GF(5); > E := EllipticCurve([K | 1, 0]); > H := E(K); > H; Set of points of E with coordinates in GF(5) > H2 := E(GF(5, 2)); > H2; Set of points of E with coordinates in GF(5^2)
We note that although these are point sets of the same curve, they are not equal because the rings are not equal.
> Scheme(H) eq Scheme(H2); true > Ring(H) eq Ring(H2); false > H eq H2; false
Similarly, we see that a point set of a subgroup scheme is not the same object as the point set of the curve because the schemes are different.
> P<t> := PolynomialRing(K); > G := SubgroupScheme(E, t - 2); > HG := G(K); > Scheme(HG) eq Scheme(H); false > Ring(HG) eq Ring(H); true > HG eq H; false
Also note that the scheme and the parent curve of point sets of G are different:
> Scheme(HG); Subgroup scheme of E defined by x + 3 > Curve(HG); Elliptic Curve defined by y^2 = x^3 + x over GF(5)