This repository was archived by the owner on Jul 24, 2024. It is now read-only.
[Merged by Bors] - feat(group_theory/group_action/units): group actions on and by units#7438
Closed
eric-wieser wants to merge 30 commits intomasterfrom
Closed
[Merged by Bors] - feat(group_theory/group_action/units): group actions on and by units#7438eric-wieser wants to merge 30 commits intomasterfrom
eric-wieser wants to merge 30 commits intomasterfrom
Conversation
eric-wieser
commented
May 2, 2021
This lemma did not need a full algebra structure; written this way, it permits usage on `has_scalar (units R) A` given `algebra R A` (in some future PR). For now, the old algebra lemmas are left behind, to minimize the scope of this patch.
0e7ce8a to
12d5f60
Compare
4f0d2f2 to
44f58bb
Compare
eric-wieser
commented
May 10, 2021
|
🎉 Great news! Looks like all the dependencies have been resolved:
💡 To add or remove a dependency please update this issue/PR description. Brought to you by Dependent Issues (:robot: ). Happy coding! |
…ction # Conflicts: # src/group_theory/group_action/group.lean # src/linear_algebra/determinant.lean
318e78f to
ae72d8e
Compare
…unity/mathlib into eric-wieser/units-action
kex-y
added a commit
that referenced
this pull request
May 18, 2021
fpvandoorn
approved these changes
May 24, 2021
Member
fpvandoorn
left a comment
There was a problem hiding this comment.
LGTM.
I will merge this with master to see if there are any new merge conflicts, but otherwise this is good to go.
bors d+
|
✌️ eric-wieser can now approve this pull request. To approve and merge a pull request, simply reply with |
Member
|
bors merge |
bors bot
pushed a commit
that referenced
this pull request
May 25, 2021
…7438) This removes all the lemmas about `(u : α) • x` and `(↑u⁻¹ : α) • x` in favor of granting `units α` its very own `has_scalar` structure, along with providing the stronger variants to make it usable elsewhere. This means that downstream code need only reason about `[group G] [mul_action G M]` instead of needing to handle groups and `units` separately. The (multiplicative versions of the) removed and moved lemmas are: * `units.inv_smul_smul` → `inv_smul_smul` * `units.smul_inv_smul` → `smul_inv_smul` * `units.smul_perm_hom`, `mul_action.to_perm` → `mul_action.to_perm_hom` * `units.smul_perm` → `mul_action.to_perm` * `units.smul_left_cancel` → `smul_left_cancel` * `units.smul_eq_iff_eq_inv_smul` → `smul_eq_iff_eq_inv_smul` * `units.smul_eq_zero` → `smul_eq_zero_iff_eq` (to avoid clashing with `smul_eq_zero`) * `units.smul_ne_zero` → `smul_ne_zero_iff_ne` * `homeomorph.smul_of_unit` → `homeomorph.smul` (the latter already existed, and the former was a special case) * `units.measurable_const_smul_iff` → `measurable_const_smul_iff` * `units.ae_measurable_const_smul_iff` → `ae_measurable_const_smul_iff` The new lemmas are: * `smul_eq_zero_iff_eq'`, a `group_with_zero` version of `smul_eq_zero_iff_eq` * `smul_ne_zero_iff_ne'`, a `group_with_zero` version of `smul_ne_zero_iff_ne` * `units.neg_smul`, a version of `neg_smul` for units. We don't currently have typeclasses about `neg` on objects without `+`. We also end up needing some new typeclass instances downstream * `units.measurable_space` * `units.has_measurable_smul` * `units.has_continuous_smul` This goes on to remove lots of coercions from `alternating_map`, `matrix.det`, and some lie algebra stuff. This makes the theorem statement cleaner, but occasionally requires rewriting through `units.smul_def` to add or remove the coercion. Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com> Co-authored-by: Floris van Doorn <fpv@andrew.cmu.edu>
|
Pull request successfully merged into master. Build succeeded: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This removes all the lemmas about
(u : α) • xand(↑u⁻¹ : α) • xin favor of grantingunits αits very ownhas_scalarstructure, along with providing the stronger variants to make it usable elsewhere.This means that downstream code need only reason about
[group G] [mul_action G M]instead of needing to handle groups andunitsseparately.The (multiplicative versions of the) removed and moved lemmas are:
units.inv_smul_smul→inv_smul_smulunits.smul_inv_smul→smul_inv_smulunits.smul_perm_hom,mul_action.to_perm→mul_action.to_perm_homunits.smul_perm→mul_action.to_permunits.smul_left_cancel→smul_left_cancelunits.smul_eq_iff_eq_inv_smul→smul_eq_iff_eq_inv_smulunits.smul_eq_zero→smul_eq_zero_iff_eq(to avoid clashing withsmul_eq_zero)units.smul_ne_zero→smul_ne_zero_iff_nehomeomorph.smul_of_unit→homeomorph.smul(the latter already existed, and the former was a special case)units.measurable_const_smul_iff→measurable_const_smul_iffunits.ae_measurable_const_smul_iff→ae_measurable_const_smul_iffThe new lemmas are:
smul_eq_zero_iff_eq', agroup_with_zeroversion ofsmul_eq_zero_iff_eqsmul_ne_zero_iff_ne', agroup_with_zeroversion ofsmul_ne_zero_iff_neunits.neg_smul, a version ofneg_smulfor units. We don't currently have typeclasses aboutnegon objects without+.We also end up needing some new typeclass instances downstream
units.measurable_spaceunits.has_measurable_smulunits.has_continuous_smulThis goes on to remove lots of coercions from
alternating_map,matrix.det, and some lie algebra stuff.This makes the theorem statement cleaner, but occasionally requires rewriting through
units.smul_defto add or remove the coercion.smul_inv#7568 (smul_inv : (c • x)⁻¹ = c⁻¹ • x⁻¹)