The Weierstrass fixed-point series and the chord data #
Source: MichaelStollBayreuth/EllipticCurves at commit 3f8c39c0fc4c0fd0a40e693aa2a9bbda08d9ee1f.
Exact-pin changes are documented in PORTING.md.
For a Weierstrass curve W over a commutative ring O, this file builds the fixed-point
series w(t) ∈ O⟦t⟧ (solution of w = t³ + a₁tw + a₂t²w + a₃w² + a₄tw² + a₆w³) and the
two-variable chord data of the curve (t, w(t)): slopeSeries, interceptSeries,
thirdRootSeries, addSeries, and the inverse inverseSeries, with their basic identities,
the swap-invariance giving commutativity, the t₂ = 0 specialization, and naturality under
coefficient-ring maps.
The right-hand side of the Weierstrass equation in the coordinates (t, w), with the
parameter series q in place of t and the unknown v in place of w.
Equations
Instances For
One step of the fixed-point iteration defining wSeries: the right-hand side of the
Weierstrass equation in the coordinates (t, w).
Equations
- W.wStep w = W.wStepAt PowerSeries.X w
Instances For
The power series w(t) ∈ O⟦t⟧ describing a Weierstrass curve near the origin in the
coordinates t = -x/y, w = -1/y: the unique solution with w ≡ t³ mod t⁴ of the
fixed-point equation wSeries_eq (Silverman, IV.1.1), obtained as the t-adic limit of
the iteration of the right-hand side starting at 0.
Equations
- W.wSeries = PowerSeries.mk fun (n : ℕ) => (PowerSeries.coeff n) (W.wStep^[n + 1] 0)
Instances For
The defining fixed-point equation of wSeries, i.e. the Weierstrass equation in the
coordinates (t, w).
The unit part of wSeries: w = t³·v with v(0) = 1.
Equations
- W.vSeries = Exists.choose ⋯
Instances For
The chord construction #
The slope and intercept of the chord through the points with parameters t₁, t₂ on the
curve (t, w(t)), as power series in O⟦t₁, t₂⟧ (variables indexed by Unit ⊕ Unit, as
in the formal-group-law kit).
The slope (divided difference) series λ(t₁, t₂) = (w(t₂) - w(t₁))/(t₂ - t₁),
defined directly by its coefficients: the coefficient of t₁ⁱt₂ʲ is the coefficient of
t^(i+j+1) in wSeries.
Instances For
The defining property of the slope series:
λ(t₁, t₂) · (t₂ - t₁) = w(t₂) - w(t₁).
The intercept series ν(t₁, t₂) = w(t₁) - λ(t₁, t₂)·t₁ of the chord through the
points with parameters t₁, t₂ on the curve (t, w(t)).
Equations
- W.interceptSeries = (MvPowerSeries.rename fun (x : Unit) => Sum.inl ()) W.wSeries - W.slopeSeries * MvPowerSeries.X (Sum.inl ())
Instances For
The intercept series is symmetric in the two parameters.
The third-root series: the parameter t₃(t₁, t₂) of the third intersection point of
the chord through the points with parameters t₁, t₂ with the curve (t, w(t)).
By Vieta applied to the cubic in t obtained by substituting w = λt + ν into the
Weierstrass equation,
t₃ = -t₁ - t₂ - (a₁λ + a₂ν + a₃λ² + 2a₄λν + 3a₆λ²ν)/(1 + a₂λ + a₄λ² + a₆λ³).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The series u(t) = 1 - a₁t - a₃w(t): minus the denominator y of the coordinates
x = t/w, y = -1/w of the negative of the point with parameter t, rescaled by w.
Equations
- W.uSeries = 1 - PowerSeries.C W.a₁ * PowerSeries.X - PowerSeries.C W.a₃ * W.wSeries
Instances For
The formal inverse parameter series: the parameter ι(t) = -t/(1 - a₁t - a₃w(t)) of
the negative of the point with parameter t on the curve (t, w(t)).
Equations
- W.inverseSeries = -(PowerSeries.X * W.uSeries.invOfUnit 1)
Instances For
Composition with the formal inverse maps w to -w/u (the w-coordinate of the
negative of a point).
Composition with the formal inverse maps u to its inverse.
The formal inverse is an involution.
The addition series of the chord construction: F(t₁, t₂) = ι(t₃(t₁, t₂)), the
parameter of the sum of the points with parameters t₁, t₂.
Equations
- W.addSeries = MvPowerSeries.subst (fun (x : Unit) => W.thirdRootSeries) W.inverseSeries
Instances For
Swap-invariance of the chord data, giving commutativity of the formal group law.
Specialization of the chord data at t₂ = 0: the slope becomes w(t)/t, the intercept
vanishes, and the third root becomes the formal inverse ι(t).
Specializing the third-root series at t₂ = 0 gives the formal inverse.
Adding the zero point does nothing: specialization of the addition series at t₂ = 0
is the identity.
Adding the zero point on the left does nothing either, by commutativity.
The linear coefficient of the addition series in the first variable is 1.
The linear coefficient of the addition series in the second variable is 1.
Below total degree 2, the addition series agrees with t₁ + t₂: the formal group
law is F(t₁, t₂) = t₁ + t₂ + (higher order).
Naturality of the chord construction under coefficient ring maps #
Every ingredient of the chord construction commutes with base change along a ring
homomorphism φ : O →+* O'. This is the reduction engine for associativity: it transports
identities from the universal Weierstrass curve over ℤ[A₁, …, A₆] to any curve.