-
Notifications
You must be signed in to change notification settings - Fork 251
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/Weierstrass): elliptic curves with specified j-invariant #5935
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added some comments, mostly stylistic based on old conventions in the same file.
Co-authored-by: David Kurniadi Angdinata <dka31@cantab.ac.uk>
Co-authored-by: David Kurniadi Angdinata <dka31@cantab.ac.uk>
Now I got strange error again: |
You will need to supply the instance argument explicitly, e.g. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I finally managed to convert ofJ
into term mode.
Co-authored-by: David Kurniadi Angdinata <dka31@cantab.ac.uk>
… 'two_or_three_ne_zero'
FIXME: This is unfortunately noncomputable
In the general case, by adding 'Classical' and 'noncomputable', it implies a noncomputable 'DecidableEq'
Is it a good idea to remove remaining |
I don't know anything about this. All I know for the inhabited instance is that we should have 37 instead of 42. 😉 |
Co-authored-by: David Kurniadi Angdinata <dka31@cantab.ac.uk>
by rw [h1728, show (1728 : F) = 2 * 864 by norm_num1, h, zero_mul] | ||
else @ofJ' _ _ j (invertibleOfNonzero h0) (invertibleOfNonzero <| sub_ne_zero_of_ne h1728) | ||
|
||
lemma ofJ_0_of_three_ne_zero (h3 : (3 : F) ≠ 0) : ofJ 0 = @ofJ0 _ _ (invertibleOfNonzero h3) := by |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about using NeZero instead of h3
? Similarly elsewhere.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good. I'll try later.
# Conflicts: # Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean
@riccardobrasca I tried |
OK, no problem if it becomes a mess. Thanks! bors merge |
Already running a review |
…th specified j-invariant (#5935) Main changes: - [x] Define specific Weierstrass curves, whose j-invariants should be 0, 1728, or ≠ 0 and 1728. - [x] Prove the quantities c₄, Δ and j for them (whenever they are defined). - [x] Define an elliptic curve from an element j in a field, whose j-invariant is equal to j. - [x] Generalize `Inhabited (EllipticCurve ℚ)` to `Inhabited (EllipticCurve F)` for any field `F` (computable if `F` has `DecidableEq`).
Pull request successfully merged into master. Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
…th specified j-invariant (#5935) Main changes: - [x] Define specific Weierstrass curves, whose j-invariants should be 0, 1728, or ≠ 0 and 1728. - [x] Prove the quantities c₄, Δ and j for them (whenever they are defined). - [x] Define an elliptic curve from an element j in a field, whose j-invariant is equal to j. - [x] Generalize `Inhabited (EllipticCurve ℚ)` to `Inhabited (EllipticCurve F)` for any field `F` (computable if `F` has `DecidableEq`).
…th specified j-invariant (#5935) Main changes: - [x] Define specific Weierstrass curves, whose j-invariants should be 0, 1728, or ≠ 0 and 1728. - [x] Prove the quantities c₄, Δ and j for them (whenever they are defined). - [x] Define an elliptic curve from an element j in a field, whose j-invariant is equal to j. - [x] Generalize `Inhabited (EllipticCurve ℚ)` to `Inhabited (EllipticCurve F)` for any field `F` (computable if `F` has `DecidableEq`).
Main changes:
Inhabited (EllipticCurve ℚ)
toInhabited (EllipticCurve F)
for any fieldF
(computable ifF
hasDecidableEq
).