The torsion or division polynomials are the polynomials or functions defining the subschemes of n-torsion points on the elliptic curve. The affine equation order of the function field is the natural home of the torsion polynomials. In order to obtain the division polynomial as a univariate polynomial, the syntax DivisionPolynomial is used; to obtain the same as a function on the curve, the syntax DivisionFunction is used.
The function field of the elliptic curve.
The affine equation order of the elliptic curve.
Returns a bivariate polynomial ring over the coefficient ring of E. This ring is stored with E and is the parent of the various multivariate polynomials associated with E, such as the division polynomials and the "omega" polynomial of any isogeny with domain E. The second return value is the map to the EquationOrder.
The affine defining polynomial for E, as an element of PolynomialRing(E).
The n-th division polynomial as an element of the affine equation order of the function field of E.
Given an elliptic curve E and an integer n, returns the n-th division polynomial as a univariate polynomial over the base ring of E. If n is even, this polynomial has multiplicity two at the nonzero 2-torsion points of the curve. The second return value is the n-th division polynomial, divided by the univariate 2-torsion polynomial if n is even. The third argument is the cofactor, equal to the univariate 2-torsion polynomial if n is even, and 1 otherwise.If a polynomial is passed as a third argument, the division polynomial is computed efficiently modulo that polynomial.
Returns the multivariate 2-torsion polynomial 2y + a_1x + a_3 as an element of PolynomialRing(E), where the equation of the curve isy^2 + a_1*xy + a_3*y = x^3 + a_2*x^2 + a_4*x + a_6.
> K := GF(101); > E := EllipticCurve([ K | 1, 1]); > Roots(DivisionPolynomial(E, 5)); [ <86, 1>, <46, 1> ] > [ P : P in RationalPoints(E) | 5*P eq E!0 ]; [ (86 : 34 : 1), (0 : 1 : 0), (46 : 25 : 1), (86 : 67 : 1), (46 : 76 : 1) ]A point worth noting is that even if the roots of the division polynomial lie in the field, the corresponding points may not, instead lying in a quadratic extension.
> Roots(DivisionPolynomial(E, 9)); [ <4, 1>, <17, 1>, <28, 1>, <34, 1>, <77, 1> ] > Points(E, 4); [] > K2<w> := ext<K | 2>; > Points(E(K2), 4); [ (4 : 82*w + 57 : 1), (4 : 19*w + 44 : 1) ] > Order($1[1]); 9