Commit 2023-12-04 20:27 3399e7d9
View on Github →refactor(AlgebraicGeometry/EllipticCurve/*): split EllipticCurve.Point into two files (#8540)
Refactor the files in AlgebraicGeometry/EllipticCurve/*
as follows:
Weierstrass.lean
contains general definitions common to all Weierstrass and elliptic curves, namely quantities associated to their coefficients, variable and base changes, and models with prescribed j-invariants.Affine.lean
contains definitions specific to Weierstrass curves written in affine coordinates, includingequation
andnonsingular
from the oldWeierstrass.lean
, but also thePoint
inductive and group operations from the oldPoint.lean
.Group.lean
contains a standalone proof of the group law forPoint
, including instances forCoordinateRing
in the oldWeierstrass.lean
, and ideal computations in itsClassGroup
in the oldPoint.lean
. This refactor is done in preparation for the newProjective.lean
in #8485 (and the upcomingJacobian.lean
), which shares all the general definitions inWeierstrass.lean
, but none of those inAffine.lean
andGroup.lean
except their proofs (analogous lemmas are proven by "reducing to the affine case"). Most of the definitions and lemmas forequation
,nonsingular
,CoordinateRing
, andClassGroup
are specific to the affine representation of Weierstrass curves, so they are now in theWeierstrassCurve.Affine
namespace, which is just an abbreviation forWeierstrassCurve
. Further documentation is added toGroup.lean
to explain the argument for the group law, but otherwise few things are changed from the original files.