-
Notifications
You must be signed in to change notification settings - Fork 319
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
feat(AlgebraicGeometry/EllipticCurve/Affine): add equivalences between points and explicit WithZero types #14627
base: master
Are you sure you want to change the base?
Conversation
Multramate
commented
Jul 10, 2024
PR summary d9f0583dc5Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
These equivalences will be useful to show the equivalence between the current inductive definition of A-points and the scheme-theoretic definition of A-points as morphisms in the category of schemes over Spec R, (see e.g. #14130 or #14167), but also to have an explicit description of certain subgroups (e.g. the n-torsion subgroup in terms of division polynomials). |
@@ -274,18 +273,19 @@ lemma nonsingular_iff_variableChange (x y : R) : | |||
simp only [variableChange] | |||
congr! 3 <;> ring1 | |||
|
|||
lemma nonsingular_zero_of_Δ_ne_zero (h : W.Equation 0 0) (hΔ : W.Δ ≠ 0) : W.Nonsingular 0 0 := 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.
Please leave a (deprecated) alias with the existing name
/-- A Weierstrass curve is nonsingular at every point if its discriminant is non-zero. -/ | ||
lemma nonsingular_of_Δ_ne_zero {x y : R} (h : W.Equation x y) (hΔ : W.Δ ≠ 0) : W.Nonsingular x y := |
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.
And this one as well
nonsingular_zero_of_Δ_ne_zero _ ((W.equation_iff_variableChange x y).mp h) <| by | ||
rwa [variableChange_Δ, inv_one, Units.val_one, one_pow, one_mul] | ||
|
||
lemma equation_iff_nonsingular {x y : R} (hΔ : W.Δ ≠ 0) : W.Equation x y ↔ W.Nonsingular x y := 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.
Is there any reason to use equation_zero_iff_nonsingular_zero
once this one exists? If not, mark the former as private or even inline it into this lemma
rwa [variableChange_Δ, inv_one, Units.val_one, one_pow, one_mul]] | ||
end Nonsingular |
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.
rwa [variableChange_Δ, inv_one, Units.val_one, one_pow, one_mul]] | |
end Nonsingular | |
rwa [variableChange_Δ, inv_one, Units.val_one, one_pow, one_mul]] | |
end Nonsingular |
@@ -637,7 +696,7 @@ lemma neg_some {x y : R} (h : W.Nonsingular x y) : -some h = some (nonsingular_n | |||
rfl | |||
|
|||
instance : InvolutiveNeg W.Point := | |||
⟨by rintro (_ | _) <;> simp [zero_def]; ring1⟩ | |||
⟨by rintro (_ | _); rfl; simp only [neg_some, negY_negY]⟩ |
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.
Focusing dot for each subgoal, please
noncomputable instance instAddPoint : Add W.Point := | ||
noncomputable instance : Add W.Point := |
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.
Any reason?
|
||
lemma nonsingular [Nontrivial R] {x y : R} (h : E.toAffine.Equation x y) : |
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.
Did this one go anywhere?