-
Notifications
You must be signed in to change notification settings - Fork 316
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] - chore: redefine DivInvMonoid.zpow_succ'
field
#17573
Conversation
PR summary f82ab413baImport changes for modified filesNo significant changes to the import graph Import changes for all files
Declarations diffNo declarations were harmed in the making of this PR! 🐙 You can run this locally as follows## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>
## more verbose report:
./scripts/declarations_diff.sh long <optional_commit> The doc-module for |
Thanks 🎉 If CI passes, please remove the label bors d+ |
✌️ Vierkantor can now approve this pull request. To approve and merge a pull request, simply reply with |
Almost all of the `erw`s work just fine as `rw`s. Only two places need additional rewriting: this is because the `pow_succ'` field of `DivInvMonoid`s mentions `Int.ofNat`, which is not reducibly defeq to the actual cast we use in our lemmas. This suggests we should redefine `pow_succ'` to use the actual cast instead: #17573.
This PR/issue depends on: |
This field of the class refers to `Int.ofNat`, but this is not (reducibly) defeq to the coercion, and not `simp`-normal. By using the coercion instead, we get access to all the lemmas on the coercion. This means we should be able to get rid of a few `erw`s and `simp`s. An argument against this change is that the original version mirrors the definition of `Int` as an inductive type somewhat better. However, note that we already have a plain `0` in `zpow_zero'` instead of `Int.ofNat 0`.
d2fc524
to
f82ab41
Compare
bors r+ |
👎 Rejected by label |
Come on, bors! bors r+ |
This field of the class refers to `Int.ofNat`, but this is not (reducibly) defeq to the coercion, and not `simp`-normal. By using the coercion instead, we get access to all the lemmas on the coercion. This means we should be able to get rid of a few `erw`s and `simp`s. We do the same for `SubNegMonoid.zsmul_succ'`. An argument against this change is that the original version mirrors the definition of `Int` as an inductive type somewhat better. However, note that we already have a plain `0` in `zpow_zero'` instead of `Int.ofNat 0`.
Pull request successfully merged into master. Build succeeded: |
DivInvMonoid.zpow_succ'
fieldDivInvMonoid.zpow_succ'
field
This field of the class refers to
Int.ofNat
, but this is not (reducibly) defeq to the coercion, and notsimp
-normal. By using the coercion instead, we get access to all the lemmas on the coercion. This means we should be able to get rid of a fewerw
s andsimp
s.We do the same for
SubNegMonoid.zsmul_succ'
.An argument against this change is that the original version mirrors the definition of
Int
as an inductive type somewhat better. However, note that we already have a plain0
inzpow_zero'
instead ofInt.ofNat 0
.erw
s in Mathlib.Algebra.Group.InjSurj #17569