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] - feat(Algebra): generalize Basis.smul
#9382
Closed
Conversation
This file contains 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
alreadydone
added
awaiting-review
The author would like community review of the PR
t-algebra
Algebra (groups, rings, fields etc)
labels
Jan 1, 2024
alreadydone
changed the title
feat(Algebra): generalize Basis.smul
feat(Algebra): generalize Jan 1, 2024
Basis.smul
jcommelin
approved these changes
Jan 6, 2024
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.
Thanks 🎉
bors merge
leanprover-community-mathlib4-bot
added
ready-to-merge
This PR has been sent to bors.
and removed
awaiting-review
The author would like community review of the PR
labels
Jan 6, 2024
mathlib-bors bot
pushed a commit
that referenced
this pull request
Jan 6, 2024
Add various `LinearMap.CompatibleSMul` instances that ultimately lead to generalization of `Basis.smul` to allow a noncommutative base ring. The key observations that allows the generalization are `IsScalarTower.smulHomClass` and `isScalarTower_of_injective`. Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
Pull request successfully merged into master. Build succeeded: |
mathlib-bors
bot
changed the title
feat(Algebra): generalize
[Merged by Bors] - feat(Algebra): generalize Jan 6, 2024
Basis.smul
Basis.smul
mathlib-bors bot
pushed a commit
that referenced
this pull request
Jan 8, 2024
Generalize the conditions of the tower law [FiniteDimensional.finrank_mul_finrank'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/FieldTheory/Tower.html#FiniteDimensional.finrank_mul_finrank') in FieldTheory/Tower from `[CommRing F] [Algebra F K]` to `[Ring F] [Module F K]`, and remove the `[Module.Finite F K]` and `[Module.Finite K A]` conditions. The generalized version applies to situations when we have a tower C/B/A where the A-module structure on C is induced from the B-module structure via a RingHom from A to B, and the A-module structure on B is induced by the same RingHom. In particular, it applies when the A-module structure on B and the B-module structure on C come from two RingHoms, and the A-module structure on C comes from the composition of them, regardless of whether A and B are commutative or not. As prerequisites, I also generalized lemmas originally introduced by @kckennylau in [mathlib3#3355](https://github.com/leanprover-community/mathlib/pull/3355/files) to prove the tower law. They were split into three PRs: + LinearAlgebra/Span #9380: add `span_eq_closure` and `closure_induction` which say that `Submodule.span R s` is generated by `R • s` as an AddSubmonoid. I feel that the existing `span_induction` should be replaced by `closure_induction` as the latter is stronger, and allow us to remove the commutativity condition in `span_smul_of_span_eq_top` in Algebra/Tower. + Algebra/Tower #9382: switching from CommSemiring/Algebra to Semiring/Module here requires proving the curious lemma `IsScalarTower.isLinearMap` which states that for a tower of modules A/S/R, any S-linear map from S to A is also R-linear. If the map is injective, we can deduce that S/S/R also form a tower. (By `ringHomEquivModuleIsScalarTower` in #9381, there is therefore a canonical RingHom from R to S.) + Lemmas for free modules over rings including `finrank_mul_finrank'` are moved from FieldTheory/Tower to LinearAlgebra/Dimension/Free [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Puzzle.3A.20noncommutative.20RingHom.20as.20typeclasses/near/407347711) Co-authored-by: Junyan Xu <junyanxu.math@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
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.
Add various
LinearMap.CompatibleSMul
instances that ultimately lead to generalization ofBasis.smul
to allow a noncommutative base ring. The key observations that allows the generalization areIsScalarTower.smulHomClass
andisScalarTower_of_injective
.