Isomorphism of point groups induced by a change of variables #
This file is ported from Michael Stoll's Apache-2.0 EllipticCurves project at commit
3f8c39c0fc4c0fd0a40e693aa2a9bbda08d9ee1f.
The derivative-transport and singular-cubic nonsingular-locus equivalence are local extensions. They generalize the ported point equivalence beyond elliptic equations while retaining the original admissible change-of-variables formulas and attribution.
Mathlib's affine Point API provides the group homomorphism induced by a change of the base
field for a fixed Weierstrass curve, but not the isomorphism of Mordell--Weil groups induced by
an admissible change of variables between two different curves. For
C : WeierstrassCurve.VariableChange F, the admissible change
(x, y) ↦ (u²x + r, u³y + u²sx + t)
gives the group isomorphism
WeierstrassCurve.Affine.Point.equivVariableChange : (C • W).Point ≃+ W.Point.
Its inverse is the explicit change of variables C⁻¹.
Transformation of the group-law formulae under a change of variables #
The image of a pair of points under the change of variables satisfies the y₁ = -y₂
degeneracy condition only if the original pair does.
A point (x, y) lies on C • W if and only if (u²x + r, u³y + u²sx + t) lies on W.
The Y-derivative of a Weierstrass equation under an admissible change of variables.
This formula does not require either equation to be elliptic.
The X-derivative of a Weierstrass equation under an admissible change of variables.
The correction term is the chain-rule contribution from the sx term in the new Y coordinate.
This formula does not require either equation to be elliptic.
An admissible change of variables identifies the nonsingular loci even when the common Weierstrass cubic is singular.
The induced isomorphism of point groups #
The underlying point map of the change of variables, sending 0 to 0.
Equations
- One or more equations did not get rendered due to their size.
- WeierstrassCurve.Affine.Point.mapVariableChangeFun W C WeierstrassCurve.Affine.Point.zero = WeierstrassCurve.Affine.Point.zero
Instances For
Transport of the affine point group along an equality of Weierstrass curves.
Equations
Instances For
The group homomorphism induced by the admissible change of variables.
Equations
- WeierstrassCurve.Affine.Point.mapVariableChange W C = { toFun := WeierstrassCurve.Affine.Point.mapVariableChangeFun W C, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The point-group isomorphism induced by the admissible change of variables.
Equations
- One or more equations did not get rendered due to their size.