The torsion or division polynomials are the polynomials defining the subschemes of n-torsion points on the elliptic curve.
Returns the homogeneous defining polynomial for the elliptic curve 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 then the division polynomial is computed efficiently modulo that polynomial.
Returns the multivariate 2-torsion polynomial 2y + a1x + a3 of the elliptic curve E, as a bivariate polynomial.
> 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) ]It is worth noting that even if the roots of the division polynomial lie in the field, the corresponding points may not, lying instead 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