Zulip Chat Archive
Stream: maths
Topic: Elliptic curve as group scheme: a blueprint
Junyan Xu (Feb 03 2026 at 00:31):
Let R be a commutative ring and let W be a WeierstrassCurve over R. Let F denote the associated homogeneous Weierstrass polynomial, so . Let W⁰ denote the R-smooth locus in W, i.e. W⁰ is the union of the three basic opens associated to the three partial derivatives and . We aim to show that there is a group R-scheme structure on W⁰ that gives rise to the familiar group law WeierstrassCurve.Projective.Point.add on W⁰(K) when K is an R-algebra that is a field. Moreover, there is a group scheme action of W⁰ on W that "fixes the singular point (if exists)". This is basically a generalization of Theorem IV.5.3c in Silverman's 2nd volume as discussed before. To construct the addition/AddAction morphism, the proof given there splits the domain into 2x2=4 affine charts and the codomain into 2, which is quite cumbersome, especially to show agreement on intersections to glue up the 4x2=8 morphisms. (We consider W⁰ and W as objects in the category of schemes over R, so denotes the fibered product over R.)
More recent discussions on Zulip led to a paper [BL] of Bosma--Lenstra giving two addition formulas in projective coordinates that are complete, and I've since realized that they are all that are needed to construct the morphism. Briefly, [BL] gives six polynomials (subscript 3 omitted here) in six variables that are bi-homogeneous of bi-degree (2,2) which can be verified to satisfy the cross identity modulo and , and similarly for and . In mathlib, we already verified that WeierstrassCurve.Projective.addXYZ, which is exactly , defines the familiar group law, so by the identities so does .
Any such three polynomials give rise to a morphism from the union of the corresponding three basic opens in to . However, mathlib doesn't currently have a mechanism to define morphisms between (subschemes of fiber products of) Proj schemes like Hartshorne Exercise II.2.14. Further complicating the matter is that is a multi-graded Proj scheme (formalized by Arnaud Mayeux and Jujian Zhang but isn't in mathlib), and the polynomials define a graded homomorphism of rings graded by different monoids (the "functoriality of Proj" stated in their paper doesn't treat this generality).
Last week, it came to my realization that the viewpoint of functors of points can serve as a general way of constructing such morphisms. In previous discussions with @David Ang, we considered generalizing the current definition of (projective) A-points of W, to (where Aˣ acts by coordinate-wise multiplication), and take to be the subset of Rˣ-orbits satisfying . These definitions don't actually capture all A-points of W or W⁰ if Pic(A) is nontrivial, but they still define a functor from the category of commutative R-algebras A to Type, and can be extended to a presheaf on the big Zariski site of R-schemes by composing with the global sections functor. The sheafification of these presheaves are exactly the functors of points (over R), because they agree on stalks, since local rings do have trivial Picard group.
To define the morphism , it would suffice to define a natural transformation for R-algebras A, which induces a sheaf morphism between the sheafifications for R-schemes X, and the desired morphism is obtained by fullness of Yoneda embedding. Unfortunately this doesn't quite work; what is true is that there are natural transformations for that agree on their intersection, where , and an inclusion for A local, which induces between the sheafifications.
Junyan Xu (Feb 03 2026 at 00:31):
Now let me go into some details and list some subgoals; I'll probably start working on these in March. If anyone is interested in collaboration please let me know.
I. Elementary facts about commutative (semi)rings
- If satisfies for , then and are in the same Rˣ-orbit iff . Specifically if we have , and then since and generate the unit ideal, must be a unit. This easily extends from to arbitrary (corresponding to ).
- As a corallary, is a separated presheaf: if and are in the same Rᵢˣ-orbit for each i, such that the Rᵢ form a Zariski cover of R, then and in every Rᵢ, implying the same are true in R, which in turn implies that the two triples are in the same Rˣ-orbit.
II. Functor of points of subschemes of projective spaces
-
Define the presheaf and its subpresheaf , first for R-algebras and then for all R-schemes; one may also consider defining both as subpresheaves of some .
We probably want to rename the current(Affine/Projective/Jacobian).Point(which is currently W⁰) toNonsingularPointorPointₙₛand give the original name to W.Equationshould probably be unbunbled fromNonsingular(Lift). -
Show that functors of points, in particular and , are sheaves on the big Zariski site: this is basically saying one can glue scheme morphisms, which is already in mathlib.
- Construct the natural transformation , which involves constructing morphisms from a tuple that generates the unit ideal in . This can be achieved by glueing corresponding to .
- Show preserves directed colimits, so its stalks are just evaluations at local rings.
- Show is bijective for A local (use AlgebraicGeometry.SpecToEquivOfLocalRing), and deduce that is sheafification. Consequently, is injective for all X by I.2.
III. Projective formulas (@David Ang and me are most familiar with this part):
- Define the three polynomials not yet in mathlib. Notice that one of the terms in each of and in [BL] are wrong. Show the the cross identities etc. module F (for which I've obtained explicit coefficients).
- Define the natural transformation : we should probably generalize WeierstrassCurve.Projective.add for this. Instead of splitting by
P ≈ Qand usingdblXYZ, we should useaddXYZwhenever generate the unit ideal and otherwise. When both triples generate the unit ideal, the results agree by I.1. -
The condition that evaluated at and generate the unit ideal is equivalent to that generate the unit ideal, so geometrically is exactly the complement of the diagonal in . One direction is easy since one can check directly that are linear combinations of etc.: in fact which is obviously antisymmetric in and . (This formula actually work for any cubic hypersurface, while etc. are more specific to plane cubic in Weierstrass form.)
It suffices to show the other direction in a field K, since if an ideal is not the unit ideal then it is contained in some maximal ideal, and in the residue field the ideal becomes zero (not the unit ideal) so all generators become zero. implies that either and are proportional (therefore etc.), or they are not and . But that implies for arbitrary s,t, so F vanishes on some two dimensional subspace of , and therefore has the equation of this subspace as a linear factor, contradicting its irreducibility. It's necessary to take s,t in the algebraic closure to make this argument work. Or we may divide F by the linear factor to find the other factor. We need to deduce irreducibility of F from WeierstrassCurve.Affine.irreducible_polynomial (Lemma 2 in ). -
We still need to show for A local. In a local ring, a set generates the unit ideal iff at least one element of it is a unit, or equivalently, is nonzero in the residue field. So we may again assume A is a field. For , if P≠Q we already showed $(P,Q)\in W^{(1)}(A)$. Otherwise, , and we can check that reduces to WeierstrassCurve.Projective.dblXYZ modulo F(P), and from the proof of WeierstrassCurve.Projective.nonsingular_add we should be able to extract the fact that don't all vanish.
IV. Group scheme axioms
We need to show the addition/AddAction morphism together with the negation and identity satisfy the commutative diagrams in group scheme axioms. The hardest one is of course associativity, which amounts to showing two morphisms agree. By faithfulness of Yoneda we just need to check the induced natural transformation between functors of points agree, which can be checked on the level of stalks (local rings), but we only have associativity for field-valued points in mathlib. My current idea is to prove 2x2x3=12 universal cross identities of polynomials in 9 variables for i=1,2,3 over the polynomial ring by considering the field of fractions of U, which can then be specialized to an arbitrary ring. (In fact to show the image of is contained in we probably already need some universal identities.)
V. Reduction homomorphisms
If R is a valuation ring, denote by K its field of fractions and k its residue field. Applying the functor to the quotient map , we obtain a group homomorphism . Since R is a domain, is injective and we may regard as a subgroup of . Since W is proper we always have , and if W has nonzero discriminant then , so we get a reduction homomorphism from a subgroup of to ; if moreover W has good reduction (discriminant is a unit), then and we get a homomorphism .
This has been a major motivation for constructing the group scheme, but with the current approach it can be obtained from just a few ingredients towards the full construction (I.1, II.1 and III.1-2): since every ring involved is local, we may as well replace W by , and the claims can be verified elementarily without mentioning schemes or sheafification. In fact can be easily verified for Bézout domains R, but if R is not local then two formulas are not enough to define addition and you also need linear combinations of them, so for convenience we should consider only local Bézout domains, which are exactly valuation rings (stacks#090Q).
Andrew Yang (Feb 03 2026 at 02:35):
Might be stupid suggestion: Can you just define it on one chart and extend by valuative criterion + properness of Proj?
Edit: no the domain is which is not a curve so the stalks aren't necessarily DVRs.
Junyan Xu (Feb 03 2026 at 08:53):
Yeah, in general if you have a rational map from a smooth curve over a field to a proper scheme it can be extended to a morphism, but in higher dimension the domain of definition can be a proper open subset. Here R also adds more dimension, and W is not smooth everywhere. If R is a field it's easy to see the domain of definition is exactly , but I don't know an abstract argument to derive the result for arbitrary R from this.
Andrew Yang (Feb 03 2026 at 19:44):
But how bad is gluing actually? Gluing 8 morphisms is just checking 8 rational function identities right? And to check the group axioms you only need to check on one affine cover (by separated-ness)
Ravi Vakil (Feb 04 2026 at 00:49):
You can do an abstract argument, but cheapest (not the most elegant) is just to define it chart by chart, and as @Andrew Yang says, check by gluing. And if you can invoke separatedness to save time, but since I suspect you are working over an arbitrary base, I might suspect that it will be easier to just do it on all charts. Define the morphisms; then check that they have the properties of a group scheme over the base.
Junyan Xu (Feb 04 2026 at 04:47):
But how bad is gluing actually?
As discussed before, there are a total of 7 cases; 2 are just swapping factors, and 1 case is in mathlib, so we count 5. Each case has two coordinates, so we need to introduce 10 new formulas; for each case we also need to verify certain elements in certain tensor product of localizations generate the unit ideal. In contrast the new approach only introduce 3 new formulas , and in fact is just up to negation. Working with polynomials directly should be more pleasant than working with tensor products of localizations of quotients of polynomial rings.
Gluing 8 morphisms is just checking 8 rational function identities right? And to check the group axioms you only need to check on one affine cover (by separated-ness)
That's correct (except for the count): in the universal case () it's shouldn't be hard to prove the scheme is integral, since we have WeierstrassCurve.Affine.CoordinateRing.instIsDomain and we can similarly prove the coordinate ring at infinity is also a domain. I remarked before that we need 7-1=6 intersections to form a tree connecting all the cases, and each case requires 2 identities, for a total of 12. They can be reduced to checking polynomial identities modulo Weierstrass polynomial, but these identities are dissimilar to each other and you need to treat them case by case. In the new approach we need 2x2x3=12 identities to check associativity but they can be treated uniformly, and requires no computation. We just show associativity in the universal case implies certain cross products of compositions of polynomials are equal, and specialize it to deduce associativity for R-points.
You can do an abstract argument, but cheapest (not the most elegant) is just to define it chart by chart, and as @Andrew Yang says, check by gluing.
I do think the the new approach is the shortest path; I'm not really concerned with elegance, but I'm in favor of using abstract mechanisms to get rid of a lot formulas that are not useful for other purposes. It's also nice that the new approach produces reduction homomorphisms as an intermediate result.
Scott Carnahan (Feb 04 2026 at 06:23):
I haven’t looked at the Neron Models (Bosch Lutkebohmert Raynaud? sorry on a phone) book in a while, but I think they had written down some theory of rationally defined group laws and actions that may be useful here.
Junyan Xu (Feb 04 2026 at 23:14):
The Theorem IV.5.3c I'm proving with this new approach is exactly from Silverman's chapter on Néron model, and he does cite BLR, so he must be well aware if simplifications are possible using materials in BLR. Yet the only alternative approach to 5.3c (in the case of good reduction) he gave uses the full force of existence of existence of Néron models ( is a group scheme by definition of Néron models):
image.png
image.png
But the existence of Néron models for Dedekind domains actually depends on 5.3 (it's crucial that "these group laws are given by the same equations, so they fit together"); isn't this circular? ("bad reduction" should be "good reduction" here)
image.png
image.png
Fortunately no, since Silverman's 5.3 is only stated for DVRs, and for DVRs the existence reduces to the case of strict Henselian rings, known from 6.7 and 6.10 which do not use 5.3 (notice that 6.10 proves the group law extends for strict Henselian DVRs):
image.png
image.png
To give an proof of 5.3c using this, one still needs to show that the Weierstrass equation defines a minimal proper regular model. This is the case in the good reduction case and a few other cases; for other Weierstrass equations you need to run Tate's algorithm and blow up the singular point to get the minimal model, so you no longer stay in .
image.png
I think the argument in the good reduction case is that the special fiber is an elliptic curve, so contains no exceptional divisor (which is rational), so by Remark 7.5.1 it's minimal (7.5 is Castelnuovo's criterion):
image.png
So overall this alternative argument is fairly complicated, requiring a lot of prerequisites, and only proves something less general. I think Silverman is proposing it as an alternative only because he consider the approach of glueing morphisms on affine charts to be also fairly complicated (notice that 3 of 4 cases are relegated to Exercise 4.22), which reaffirms the advantage of my new approach presented above.
David Ang (Feb 05 2026 at 22:26):
What are we planning to do with the "tuples/triples quotient by action" API? I have an old PR that changes Fin 3 -> R to R x R x R for better definitional equality based on my experiments; what are we going to do about this?
We probably want to rename the current
(Affine/Projective/Jacobian).Point(which is currently W⁰) toNonsingularPointorPointₙₛand give the original name to W.Equationshould probably be unbunbled fromNonsingular(Lift).
Good idea, I will change Point to NonsingularPoint and keep the original name free for now. The predicates should really be something like OnCurve (SatisfiesEquation?) and IsNonsingular, according to naming conventions?
- Define the three polynomials not yet in mathlib. Notice that one of the terms in each of and in [BL] are wrong. Show the the cross identities etc. module F (for which I've obtained explicit coefficients).
Do you have the corrected versions of etc somewhere? I can also change the (addX) etc to follow [BL] and then cite their paper (because currently it looks like I conjured the formulae out of thin air), or alternatively we could use the bilinear form description you have in the division polynomials paper (which still isn't public)? I guess we don't care about etc from their paper.
- Define the natural transformation : we should probably generalize WeierstrassCurve.Projective.add for this. Instead of splitting by
P ≈ Qand usingdblXYZ, we should useaddXYZwhenever generate the unit ideal and otherwise. When both triples generate the unit ideal, the results agree by I.1.
I can do this. Does this mean that the doubling formulae (dblX) etc should be removed?
Junyan Xu (Feb 06 2026 at 00:17):
What are we planning to do with the "tuples/triples quotient by action" API? I have an old PR that changes Fin 3 -> R to R x R x R for better definitional equality based on my experiments; what are we going to do about this?
I think I'd stick with Fin 3 -> R because it's easier to connect to MvPolynomial. Also note that WeierstrassCurve.Projective.PointClass can be changed to , generalized to , and move to another file about (points of) projective spaces.
Good idea, I will change
PointtoNonsingularPointand keep the original name free for now. The predicates should really be something likeOnCurve(SatisfiesEquation?) andIsNonsingular, according to naming conventions?
Thanks! I think W.polynomial.eval P = 0 is already short enough to write, so maybe we deprecate the Equation predicate if we can't think of a better name? I'm also fine with keeping it. On the other hand Nonsingular is an adjective and I heard that Is isn't required in this case?
Do you have the corrected versions of etc somewhere? I can also change the (
addX) etc to follow [BL] and then cite their paper (because currently it looks like I conjured the formulae out of thin air), or alternatively we could use the bilinear form description you have in the division polynomials
We have and are in XY2.txt. The errors in [BL] are: in should be , and in should be . I've obtained a more compact formula for , given by
y1 y2 (x2 y1 - x1 y2) +
a1 (x2^2 y1^2 - x1^2 y2^2) + (b2 - 3 a2) x1 x2 (x2 y1 - x1 y2) +
a3 (x2 y1^2 z2 - x1 y2^2 z1) + (b4 - a4) (x2^2 y1 z1 - x1^2 y2 z2 +
2 x1 x2 (y1 z2 - y2 z1)) + (b6 - a6) (x1 y1 z2^2 - x2 y2 z1^2 +
2 z1 z2 (x2 y1 - x1 y2)) + b8 z1 z2 (y1 z2 - y2 z1)
I hope I can figure out a more conceptual formula for , or at least make as compact as this.
For I think I prefer the expression , where is Q x * W.polynomialX.eval P + Q y * W.polynomialY.eval P + Q z * W.polynomialZ.eval P and similarly for . This formula allows you to define addXYZ directly and then addX/Y/Z as its coordinates.
I can do this. Does this mean that the doubling formulae (
dblX) etc should be removed?
Thanks! I think dblX/Y/Z are still useful to connect to the affine formula, and we do want to focus on the diagonal after we showed the rational map is defined off diagonal by addXYZ. Though it's reasonable to redefine them as specializations of to the case P=Q (whatever is convenient, I don't care a lot).
Junyan Xu (Feb 11 2026 at 22:14):
I opened draft PR #35151 to supply more details of the construction of the group scheme. I now think that the definition of PointClass needn't be changed, and I just renamed it to AlgebraicGeometry.ProjectiveSpace.PointClass, and defined two more predicates SpanEqTop and EquationLift on it; together with the existing NonsingularLift, they define subpresheaves (CategoryTheory.Subfunctor) whose sheafifications are functors of points (Yoneda) of , and . I also defined point and nonsingularPoint as sets in PointClass, and I think the structure Point should no longer be needed.
David Ang (Feb 23 2026 at 23:12):
Seems like we'd have to call it W.NonsingularPoint even if W.IsElliptic? Maybe W.Pointₙₛ might be a little less invasive (but still there)
Last updated: Feb 28 2026 at 14:05 UTC