The chord construction computes the group law #
Over a field, a point of a Weierstrass curve W away from the origin can be written in the
(z, w)-chart of WeierstrassCurve.formalW as (z / w, -1 / w), coming from the substitution
x = z / w, y = -1 / w. This file proves that such a point is nonsingular, and that the chord
construction in that chart computes the group law: the third intersection point of the chord
through two of them is, after negation, their sum in WeierstrassCurve.Affine.Point.
Everything here is an identity between field elements. The parameters Λ, N and z₃ of the
chord enter as hypotheses saying they satisfy the defining relations — the same relations that
formalSlope, formalIntercept and formalThirdRoot satisfy as power series — so that this
file is independent of the power-series development and can be applied to it later.
Main results #
WeierstrassCurve.chord_point_nonsingular: a point of the(z, w)-chart is nonsingular.WeierstrassCurve.chord_point_add: the third point of the chord computes the group law.
References #
Provenance #
Adapted from Michael Stoll's EllipticCurves project
(github.com/MichaelStollBayreuth/EllipticCurves, Apache-2.0, pinned by
TauCetiRoadmap/EllipticCurves/README.md at 66889eada51a),
EllipticCurves/WeierstrassFormalGroup/ThirdPoint.lean, its FieldChord section —
declarations chord_x_ne, chord_point_nonsingular, chord_addX_addY and chord_point_add.
The parametrized point (q/w, -1/w) is nonsingular whenever (q, w) satisfies the
Weierstrass equation in the (z, w)-chart and the discriminant does not vanish.
The chord construction computes the group law, at the level of nonsingular points.