[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Operations on Point Sets

To each elliptic curve E is associated a series of point sets of E indexed by coefficient rings. These point sets, not E, are the objects that points lie in. If K is the base ring of E and L is some extension of K, then the point set E(L) has as elements all points lying on E whose coordinates are in L.

There is a special 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 the same.

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 that they are point sets of.)

Subsections

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, 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, returns a point set whose elements are points on E with coefficients in L. The map is retained to manage coercions between point sets.

Associated Structures

Category(H) : SetPtEll -> Cat
Type(H) : SetPtEll -> Cat
Returns the category of point sets of elliptic curves, SetPtEll.
Scheme(H) : SetPtEll -> CrvEll
Returns the associated scheme (either an elliptic curve or a subgroup scheme) that H is a point set of.
Curve(H) : SetPtEll -> CrvEll
Returns the associated elliptic curve that contains Scheme(H).
Ring(H) : SetPtEll -> Rng
The ring that contains the coordinates of points in H.

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).
H1 ne H2 : SetPtEll, SetPtEll -> BoolElt
The logical negation of eq.

Example CrvEll_PointSets (H91E13)

We create an elliptic curve over GF(5) and two point sets of it:

> 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 see 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 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)


 [Next][Prev] [Right] [Left] [Up] [Index] [Root]