Weierstrass equations and the nonsingular condition in affine coordinates #
Let W
be a Weierstrass curve over a commutative ring R
with coefficients aᵢ
. An affine point
on W
is a tuple (x, y)
of elements in R
satisfying the Weierstrass equation W(X, Y) = 0
in
affine coordinates, where W(X, Y) := Y² + a₁XY + a₃Y - (X³ + a₂X² + a₄X + a₆)
. It is
nonsingular if its partial derivatives W_X(x, y)
and W_Y(x, y)
do not vanish simultaneously.
This file defines polynomials associated to Weierstrass equations and the nonsingular condition in
affine coordinates. The group law on the actual type of nonsingular points in affine coordinates
will be defined in Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean
, based on the
formulae for group operations in Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean
.
Main definitions #
WeierstrassCurve.Affine.Equation
: the Weierstrass equation in affine coordinates.WeierstrassCurve.Affine.Nonsingular
: the nonsingular condition in affine coordinates.
Main statements #
WeierstrassCurve.Affine.equation_iff_nonsingular
: an elliptic curve in affine coordinates is nonsingular at every point.
Implementation notes #
All definitions and lemmas for Weierstrass curves in affine coordinates live in the namespace
WeierstrassCurve.Affine
to distinguish them from those in other coordinates. This is simply an
abbreviation for WeierstrassCurve
that can be converted using WeierstrassCurve.toAffine
.
References #
J Silverman, The Arithmetic of Elliptic Curves
Tags #
elliptic curve, affine, Weierstrass equation, nonsingular
Affine coordinates #
An abbreviation for a Weierstrass curve in affine coordinates.
Equations
Instances For
The conversion from a Weierstrass curve to affine coordinates.
Instances For
Weierstrass equations in affine coordinates #
The polynomial W(X, Y) := Y² + a₁XY + a₃Y - (X³ + a₂X² + a₄X + a₆)
associated to a Weierstrass
curve W
over a ring R
in affine coordinates.
For ease of polynomial manipulation, this is represented as a term of type R[X][X]
, where the
inner variable represents X
and the outer variable represents Y
. For clarity, the alternative
notations Y
and R[X][Y]
are provided in the Polynomial.Bivariate
scope to represent the outer
variable and the bivariate polynomial ring R[X][X]
respectively.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The proposition that an affine point (x, y)
lies in a Weierstrass curve W
.
In other words, it satisfies the Weierstrass equation W(X, Y) = 0
.
Equations
- W.Equation x y = (Polynomial.evalEval x y W.polynomial = 0)
Instances For
The nonsingular condition in affine coordinates #
The partial derivative W_X(X, Y)
with respect to X
of the polynomial W(X, Y)
associated to
a Weierstrass curve W
in affine coordinates.
Equations
- W.polynomialX = Polynomial.C (Polynomial.C W.a₁) * Polynomial.X - Polynomial.C (Polynomial.C 3 * Polynomial.X ^ 2 + Polynomial.C (2 * W.a₂) * Polynomial.X + Polynomial.C W.a₄)
Instances For
The partial derivative W_Y(X, Y)
with respect to Y
of the polynomial W(X, Y)
associated to
a Weierstrass curve W
in affine coordinates.
Equations
- W.polynomialY = Polynomial.C (Polynomial.C 2) * Polynomial.X + Polynomial.C (Polynomial.C W.a₁ * Polynomial.X + Polynomial.C W.a₃)
Instances For
The proposition that an affine point (x, y)
on a Weierstrass curve W
is nonsingular.
In other words, either W_X(x, y) ≠ 0
or W_Y(x, y) ≠ 0
.
Note that this definition is only mathematically accurate for fields.
Equations
- W.Nonsingular x y = (W.Equation x y ∧ (Polynomial.evalEval x y W.polynomialX ≠ 0 ∨ Polynomial.evalEval x y W.polynomialY ≠ 0))
Instances For
Alias of WeierstrassCurve.Affine.equation_iff_nonsingular_of_Δ_ne_zero
.
Alias of WeierstrassCurve.Affine.equation_iff_nonsingular_of_Δ_ne_zero
.