Skip to content
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
eric-wieser/units-action
Closed

[Merged by Bors] - feat(group_theory/group_action/units): group actions on and by units#7438
eric-wieser wants to merge 30 commits intomasterfrom
eric-wieser/units-action

Conversation

@eric-wieser
Copy link
Copy Markdown
Member

@eric-wieser eric-wieser commented May 2, 2021

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_smulinv_smul_smul
  • units.smul_inv_smulsmul_inv_smul
  • units.smul_perm_hom, mul_action.to_permmul_action.to_perm_hom
  • units.smul_permmul_action.to_perm
  • units.smul_left_cancelsmul_left_cancel
  • units.smul_eq_iff_eq_inv_smulsmul_eq_iff_eq_inv_smul
  • units.smul_eq_zerosmul_eq_zero_iff_eq (to avoid clashing with smul_eq_zero)
  • units.smul_ne_zerosmul_ne_zero_iff_ne
  • homeomorph.smul_of_unithomeomorph.smul (the latter already existed, and the former was a special case)
  • units.measurable_const_smul_iffmeasurable_const_smul_iff
  • units.ae_measurable_const_smul_iffae_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.


Open in Gitpod

@eric-wieser eric-wieser added the awaiting-review The author would like community review of the PR label May 2, 2021
@eric-wieser eric-wieser added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels 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.
@github-actions github-actions bot added the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label May 3, 2021
@eric-wieser eric-wieser force-pushed the eric-wieser/units-action branch from 0e7ce8a to 12d5f60 Compare May 3, 2021 13:55
@eric-wieser eric-wieser force-pushed the eric-wieser/units-action branch from 4f0d2f2 to 44f58bb Compare May 3, 2021 14:09
@github-actions github-actions bot removed the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label May 6, 2021
@github-actions github-actions bot added the merge-conflict Please `git merge origin/master` then a bot will remove this label. label May 7, 2021
@github-actions github-actions bot added blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. merge-conflict Please `git merge origin/master` then a bot will remove this label. and removed blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. labels May 10, 2021
@github-actions
Copy link
Copy Markdown

@github-actions github-actions bot removed the merge-conflict Please `git merge origin/master` then a bot will remove this label. label May 16, 2021
…ction

# Conflicts:
#	src/group_theory/group_action/group.lean
#	src/linear_algebra/determinant.lean
@eric-wieser eric-wieser force-pushed the eric-wieser/units-action branch from 318e78f to ae72d8e Compare May 16, 2021 20:17
@eric-wieser eric-wieser added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels May 17, 2021
kex-y added a commit that referenced this pull request May 18, 2021
Copy link
Copy Markdown
Member

@fpvandoorn fpvandoorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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+

@bors
Copy link
Copy Markdown

bors bot commented May 24, 2021

✌️ eric-wieser can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@github-actions github-actions bot added the delegated The PR author may merge after reviewing final suggestions. label May 24, 2021
@github-actions github-actions bot removed the awaiting-review The author would like community review of the PR label May 24, 2021
@fpvandoorn
Copy link
Copy Markdown
Member

bors merge

@github-actions github-actions bot added the ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) label May 25, 2021
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>
@bors
Copy link
Copy Markdown

bors bot commented May 25, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(group_theory/group_action/units): group actions on and by units [Merged by Bors] - feat(group_theory/group_action/units): group actions on and by units May 25, 2021
@bors bors bot closed this May 25, 2021
@bors bors bot deleted the eric-wieser/units-action branch May 25, 2021 15:58
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

delegated The PR author may merge after reviewing final suggestions. ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants