Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat(AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic): add maps for division polynomials #13399

Closed
wants to merge 68 commits into from

Conversation

Copy link
Contributor

@alreadydone alreadydone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks 🎉
This is now good for merging again.

Copy link

🚀 Pull request has been placed on the maintainer queue by alreadydone.

@jcommelin
Copy link
Member

Does it make sense to put this in a new file? Because the current import adds 300 new transitive imports. Or do you think that everything importing .Basic will also want access to the new results from this PR anyways?

@Multramate
Copy link
Collaborator Author

Does it make sense to put this in a new file? Because the current import adds 300 new transitive imports. Or do you think that everything importing .Basic will also want access to the new results from this PR anyways?

Very understandable. I do think that users of \Psi and \Phi should have access to their equivalence with \psi and \phi in the coordinate ring, because that's the original motivation for having separate definitions. This only requires the definition of the coordinate ring and some basic properties, hence only requires importing AdjoinRoot and Norm. Unfortunately the file defining the coordinate ring is interlaced with the proof of the group law that imports ClassGroup, which presumably is the majority of the 300+ transitive imports. How about this: let's merge this PR, and I'll open another PR immediately that splits off the stuff on the coordinate ring into another file, and this file can just import that new file.

@alreadydone
Copy link
Contributor

alreadydone commented Jun 12, 2024

The central result about division polynomials is the formula for zsmul on the group of rational points in terms of division polynomials, and the group structure already require CoordinateRing (AdjoinRoot), ClassGroup and Norm, so I don't think it makes much sense to avoid them.

@Multramate
Copy link
Collaborator Author

Yes, but ZSMul.lean or Group.lean will be a different file from Basic.lean. Maybe there are uses of division polynomials without needing the fact that the points form a group, e.g. if you just need an explicit duplication/triplication formula?

I think it's probably good to split off a file just for the coordinate ring anyway - this can include all the API for the universal elliptic curve, the evaluation and specialisation maps, and whatever else that are universal constructions.

Now that I think of it, we don't actually need the two definitions to agree until we actually compute the structure of the n-torsion. Maybe I'll leave the lemmas here for now, and the move it out eventually once I get to that.

@alreadydone
Copy link
Contributor

alreadydone commented Jun 12, 2024

just need an explicit duplication/triplication formula

I think my proof of the duplication formula (in terms of division polynomials) doesn't use the group axioms (can be extracted from these two lemmas), but the triplication formula (which is not established until the final theorem) uses the group structure.

@alreadydone
Copy link
Contributor

It seems our consensus is to merge this PR first, so let's do that and worry about splitting later? If you put your proposed splitting in some branch I can check whether it's reasonable ...

@alreadydone
Copy link
Contributor

In fact, I think it's pretty rare that people would want to talk about elliptic curves without knowing the rational points form a group. Do you have such examples in mind?

@YaelDillies
Copy link
Collaborator

I tend to agree that the split can be done later, if at all

@Multramate
Copy link
Collaborator Author

In fact, I think it's pretty rare that people would want to talk about elliptic curves without knowing the rational points form a group. Do you have such examples in mind?

Not specifically the theory of division polynomials, but my primary example would be moduli problems (e.g. the moduli stack of genus one curves, or just modular curves X/X_0/X_1), where the group law is not relevant? Obviously this is very far away and proving any useful theorems about moduli spaces would require some form of Riemann-Roch, in which case the group law is pretty much automatic, but maybe there's a nice description of the Weierstrass coefficients in terms of the moduli space.

Another argument for avoiding the import could be if the user prefers to write a different group law (e.g. the one induced by complex uniformisation), which might have properties easier to work with, but that's probably a weak argument.

@alreadydone
Copy link
Contributor

Well, the modular curves seem pretty closely connected to the group structure:
image
You might be able to define modular curves through their own equations but as soon as you connect them to elliptic curves you'd be talking about torsion points.

Copy link
Contributor

@Vierkantor Vierkantor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code looks good to me, and the consensus seems to be that the imports are okay or can be split later on. So let's get this merged.

bors r+

mathlib-bors bot pushed a commit that referenced this pull request Jun 25, 2024
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Jun 25, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic): add maps for division polynomials [Merged by Bors] - feat(AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic): add maps for division polynomials Jun 25, 2024
@mathlib-bors mathlib-bors bot closed this Jun 25, 2024
@mathlib-bors mathlib-bors bot deleted the DivisionPolynomial.Map branch June 25, 2024 09:57
kbuzzard pushed a commit that referenced this pull request Jun 26, 2024
dagurtomas pushed a commit that referenced this pull request Jul 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintainer-merge t-algebraic-geometry Algebraic geometry t-number-theory Number theory (also use t-algebra or t-analysis to specialize)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants