-
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] - refactor(AlgebraicGeometry/EllipticCurve/*): refactor base change for ring homomorphisms #9596
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.
Are you sure this modification is worth? In practice people will base change from R
to an R
-algebra A
95% of the times, and they will have to write algebraMap R A
everywhere...
@@ -138,7 +138,7 @@ lemma YClass_ne_zero [Nontrivial R] (y : R[X]) : YClass W y ≠ 0 := | |||
set_option linter.uppercaseLean3 false in | |||
#align weierstrass_curve.coordinate_ring.Y_class_ne_zero WeierstrassCurve.Affine.CoordinateRing.YClass_ne_zero | |||
|
|||
lemma C_addPolynomial (x y L : R) : mk W (C (W.addPolynomial x y L)) = | |||
lemma C_addPolynomial (x y L : R) : mk W (C <| W.addPolynomial x y L) = |
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.
Personally I prefer the previous spelling with the parenthesis, here I think it helps readability, but as you prefer.
They should not need to write
Here, the proof for |
If there is no need to write bors d+ |
✌️ Multramate can now approve this pull request. To approve and merge a pull request, simply reply with |
bors r+ |
… ring homomorphisms (#9596) Refactor Weierstrass curves and nonsingular rational points to allow for base changes over an arbitrary ring homomorphism `φ : K →+* L`. This generalises the natural map `algebraMap K L` and removes the necessity for `Algebra K L`, but also gives an easy way to define `DistribMulAction` for the action of `L ≃ₐ[K] L` on the nonsingular rational points over `L`, since `L ≃ₐ[K] L` restricts to `L →ₐ[K] L` that restricts to `L →+* L`. The old notation `W⟮L⟯` is preserved for base change over `algebraMap K L`. Also remove some unnecessary coercions in the Weierstrass file.
Pull request successfully merged into master. Build succeeded: |
…#9744) This is in accordance with other similar definitions e.g. `Polynomial.map`. It turns out that rewrite lemmas of the form `(W.map (φ.comp ψ)).negY/addX/addY = ψ ((W.map φ).negY/addX/addY)` are rather annoying to use, so they are replaced with the original `baseChange` functionality that says `(W.baseChange B).negY/addX/addY = ψ ((W.baseChange A).negY/addX/addY)`. This addresses the issue in #9596 pointed out by @riccardobrasca, but for the Weierstrass curve `W` rather than its points.
…#9744) This is in accordance with other similar definitions e.g. `Polynomial.map`. It turns out that rewrite lemmas of the form `(W.map (φ.comp ψ)).negY/addX/addY = ψ ((W.map φ).negY/addX/addY)` are rather annoying to use, so they are replaced with the original `baseChange` functionality that says `(W.baseChange B).negY/addX/addY = ψ ((W.baseChange A).negY/addX/addY)`. This addresses the issue in #9596 pointed out by @riccardobrasca, but for the Weierstrass curve `W` rather than its points.
…#9744) This is in accordance with other similar definitions e.g. `Polynomial.map`. It turns out that rewrite lemmas of the form `(W.map (φ.comp ψ)).negY/addX/addY = ψ ((W.map φ).negY/addX/addY)` are rather annoying to use, so they are replaced with the original `baseChange` functionality that says `(W.baseChange B).negY/addX/addY = ψ ((W.baseChange A).negY/addX/addY)`. This addresses the issue in #9596 pointed out by @riccardobrasca, but for the Weierstrass curve `W` rather than its points.
…#9744) This is in accordance with other similar definitions e.g. `Polynomial.map`. It turns out that rewrite lemmas of the form `(W.map (φ.comp ψ)).negY/addX/addY = ψ ((W.map φ).negY/addX/addY)` are rather annoying to use, so they are replaced with the original `baseChange` functionality that says `(W.baseChange B).negY/addX/addY = ψ ((W.baseChange A).negY/addX/addY)`. This addresses the issue in #9596 pointed out by @riccardobrasca, but for the Weierstrass curve `W` rather than its points.
…#9744) This is in accordance with other similar definitions e.g. `Polynomial.map`. It turns out that rewrite lemmas of the form `(W.map (φ.comp ψ)).negY/addX/addY = ψ ((W.map φ).negY/addX/addY)` are rather annoying to use, so they are replaced with the original `baseChange` functionality that says `(W.baseChange B).negY/addX/addY = ψ ((W.baseChange A).negY/addX/addY)`. This addresses the issue in #9596 pointed out by @riccardobrasca, but for the Weierstrass curve `W` rather than its points.
…#9744) This is in accordance with other similar definitions e.g. `Polynomial.map`. It turns out that rewrite lemmas of the form `(W.map (φ.comp ψ)).negY/addX/addY = ψ ((W.map φ).negY/addX/addY)` are rather annoying to use, so they are replaced with the original `baseChange` functionality that says `(W.baseChange B).negY/addX/addY = ψ ((W.baseChange A).negY/addX/addY)`. This addresses the issue in #9596 pointed out by @riccardobrasca, but for the Weierstrass curve `W` rather than its points.
Refactor Weierstrass curves and nonsingular rational points to allow for base changes over an arbitrary ring homomorphism
φ : K →+* L
. This generalises the natural mapalgebraMap K L
and removes the necessity forAlgebra K L
, but also gives an easy way to defineDistribMulAction
for the action ofL ≃ₐ[K] L
on the nonsingular rational points overL
, sinceL ≃ₐ[K] L
restricts toL →ₐ[K] L
that restricts toL →+* L
. The old notationW⟮L⟯
is preserved for base change overalgebraMap K L
.Also remove some unnecessary coercions in the Weierstrass file.