Subgroup Schemes

A subgroup scheme G of an elliptic curve E is a subscheme of E defined by a univariate polynomial ψ and closed under the group law on E. The points of G are those points of E whose x-coordinate is a root of ψ. All elliptic curves are considered to be subgroup schemes with defining polynomial ψ = 0.

Contents

Creation of Subgroup Schemes

SubgroupScheme(G, f) : SchGrpEll, RngUPolElt -> SchGrpEll
Creates the subgroup scheme of the subgroup scheme G defined by the univariate polynomial f. No checking is done to ensure that the rational points of the result actually do form a group under the addition law. Note that G can be an elliptic curve.
TorsionSubgroupScheme(G, n) : SchGrpEll, RngIntElt -> SchGrpEll
Returns the subgroup scheme of n-torsion points of the subgroup scheme G. Note that G can be an elliptic curve.

Associated Structures

Category(G) : SchGrpEll -> Cat
Type(G) : SchGrpEll -> Cat
Returns the category of elliptic curve subgroup schemes, SchGrpEll.
Curve(G) : SchGrpEll -> CrvEll
Generic(G) : SchGrpEll -> CrvEll
Returns the elliptic curve E of which G is a subgroup scheme.
BaseRing(G) : SchGrpEll -> Rng
CoefficientRing(G) : SchGrpEll -> Rng
Returns the base ring of the subgroup scheme G; this is the same as the base ring of its curve.
DefiningSubschemePolynomial(G) : SchGrpEll -> RngUPolElt
Returns the univariate polynomial that defines G as a subscheme of its curve.

Predicates on Subgroup Schemes

G1 eq G2 : SchGrpEll, SchGrpEll -> BoolElt
Returns true if and only if G1 and G2 are subgroup schemes of the same elliptic curve and are defined by equal polynomials.
G1 ne G2 : SchGrpEll, SchGrpEll -> BoolElt
The logical negation of eq.

Points of Subgroup Schemes

# G: SchGrpEll -> RngIntElt
Order(G) : SchGrpEll -> RngIntElt
The order of the group of rational points on the subgroup scheme G.
FactoredOrder(G) : SchGrpEll -> RngIntElt
The factorisation of the order of the group of rational points on the subgroup scheme G.
Points(G) : SchGrpEll -> SetIndx
RationalPoints(G) : SchGrpEll -> SetIndx
The indexed set of rational points of the subgroup scheme G over its base ring.

Example CrvEll_SubgroupSchemes (H128E14)

We construct a curve over F49 and form several subgroup schemes from it.
> K<w> := GF(7, 2);
> P<t> := PolynomialRing(K);
> E := EllipticCurve([K | 1, 3]);
> G := SubgroupScheme(E, (t-4)*(t-5)*(t-6));
> G;
Subgroup scheme of E defined by x^3 + 6*x^2 + 4*x + 6
> Points(G);
{@ (0 : 1 : 0), (6 : 1 : 1), (6 : 6 : 1), (4 : 1 : 1), (4 : 6 : 1),
(5 : 0 : 1) @}
The points of order 3 form a further subgroup.
> [ Order(P) : P in $1 ];
[ 1, 3, 3, 6, 6, 2 ]
> G2 := SubgroupScheme(G, t - 6);
> G2;
Subgroup scheme of E defined by x + 1
> Points(G2);
{@ (0 : 1 : 0), (6 : 1 : 1), (6 : 6 : 1) @}
We can find this subgroup another way, as the intersection of the 15-torsion points of E and G.
> G3 := TorsionSubgroupScheme(E, 15);
> #G3;
15
> G4 := SubgroupScheme(G3, DefiningSubschemePolynomial(G));
> G4;
Subgroup scheme of E defined by x + 1
> G2 eq G4;
true
V2.28, 13 July 2023