Skip to content
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
wants to merge 2 commits into from

Conversation

alreadydone
Copy link
Contributor

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.


Open in Gitpod

@alreadydone 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 alreadydone changed the title feat(Algebra): generalize Basis.smul feat(Algebra): generalize Basis.smul Jan 1, 2024
Copy link
Member

@jcommelin jcommelin left a 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 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>
@mathlib-bors
Copy link

mathlib-bors bot commented Jan 6, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Algebra): generalize Basis.smul [Merged by Bors] - feat(Algebra): generalize Basis.smul Jan 6, 2024
@mathlib-bors mathlib-bors bot closed this Jan 6, 2024
@mathlib-bors mathlib-bors bot deleted the ModuleTower3 branch January 6, 2024 14:22
@alexjbest alexjbest mentioned this pull request Jan 8, 2024
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
ready-to-merge This PR has been sent to bors. t-algebra Algebra (groups, rings, fields etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants