[Merged by Bors] - feat(LinearAlgebra/TensorProduct/Submodule): add some linear maps induced by multiplication for submodules#12498
[Merged by Bors] - feat(LinearAlgebra/TensorProduct/Submodule): add some linear maps induced by multiplication for submodules#12498
Conversation
erdOne
left a comment
There was a problem hiding this comment.
I hope these work? These comments also apply to rTensorOne.
Unfortunately, this file does not import the definition of |
|
You can also use |
No, there is no instance
Thanks. Now I'm satisfied (sort of) with current code. |
|
Ok. Sorry again for the long wait! |
|
🚀 Pull request has been placed on the maintainer queue by erdOne. |
|
Thanks! bors merge |
…uced by multiplication for submodules (#12498) ... used in the definition of linearly disjointness. Let `R` be a commutative ring, `S` be an `R`-algebra (not necessarily commutative). Let `M` and `N` be `R`-submodules in `S`. - `Submodule.mulMap`: the natural `R`-linear map `M ⊗[R] N →ₗ[R] S` induced by the multiplication in `S`, whose image is `M * N` (`Submodule.mulMap_range`). - `Submodule.mulMap'`: the natural map `M ⊗[R] N →ₗ[R] M * N` induced by multiplication in `S`, which is surjective (`Submodule.mulMap'_surjective`). - `Submodule.lTensorOne`, `Submodule.rTensorOne`: the natural isomorphism between `i(R) ⊗[R] N` and `N`, resp. `M ⊗[R] i(R)` and `M`, induced by multiplication in `S`, here `i : R → S` is the structure map. They generalize `TensorProduct.lid` and `TensorProduct.rid`, as `i(R)` is not necessarily isomorphic to `R`. Note that we use `⊥ : Subalgebra R S` instead of `1 : Submodule R S`, since the map `R →ₗ[R] (1 : Submodule R S)` is not defined directly in mathlib yet. - `Submodule.mulLeftMap`: if `m : ι → M` is a family of elements, then there is an `R`-linear map from `ι →₀ N` to `S` which maps `{ n_i }` to the sum of `m_i * n_i`. - `Submodule.mulRightMap`: if `n : ι → N` is a family of elements, then there is an `R`-linear map from `ι →₀ M` to `S` which maps `{ m_i }` to the sum of `m_i * n_i`.
|
Pull request successfully merged into master. Build succeeded: |
…uced by multiplication for submodules (#12498) ... used in the definition of linearly disjointness. Let `R` be a commutative ring, `S` be an `R`-algebra (not necessarily commutative). Let `M` and `N` be `R`-submodules in `S`. - `Submodule.mulMap`: the natural `R`-linear map `M ⊗[R] N →ₗ[R] S` induced by the multiplication in `S`, whose image is `M * N` (`Submodule.mulMap_range`). - `Submodule.mulMap'`: the natural map `M ⊗[R] N →ₗ[R] M * N` induced by multiplication in `S`, which is surjective (`Submodule.mulMap'_surjective`). - `Submodule.lTensorOne`, `Submodule.rTensorOne`: the natural isomorphism between `i(R) ⊗[R] N` and `N`, resp. `M ⊗[R] i(R)` and `M`, induced by multiplication in `S`, here `i : R → S` is the structure map. They generalize `TensorProduct.lid` and `TensorProduct.rid`, as `i(R)` is not necessarily isomorphic to `R`. Note that we use `⊥ : Subalgebra R S` instead of `1 : Submodule R S`, since the map `R →ₗ[R] (1 : Submodule R S)` is not defined directly in mathlib yet. - `Submodule.mulLeftMap`: if `m : ι → M` is a family of elements, then there is an `R`-linear map from `ι →₀ N` to `S` which maps `{ n_i }` to the sum of `m_i * n_i`. - `Submodule.mulRightMap`: if `n : ι → N` is a family of elements, then there is an `R`-linear map from `ι →₀ M` to `S` which maps `{ m_i }` to the sum of `m_i * n_i`.
…uced by multiplication for submodules (#12498) ... used in the definition of linearly disjointness. Let `R` be a commutative ring, `S` be an `R`-algebra (not necessarily commutative). Let `M` and `N` be `R`-submodules in `S`. - `Submodule.mulMap`: the natural `R`-linear map `M ⊗[R] N →ₗ[R] S` induced by the multiplication in `S`, whose image is `M * N` (`Submodule.mulMap_range`). - `Submodule.mulMap'`: the natural map `M ⊗[R] N →ₗ[R] M * N` induced by multiplication in `S`, which is surjective (`Submodule.mulMap'_surjective`). - `Submodule.lTensorOne`, `Submodule.rTensorOne`: the natural isomorphism between `i(R) ⊗[R] N` and `N`, resp. `M ⊗[R] i(R)` and `M`, induced by multiplication in `S`, here `i : R → S` is the structure map. They generalize `TensorProduct.lid` and `TensorProduct.rid`, as `i(R)` is not necessarily isomorphic to `R`. Note that we use `⊥ : Subalgebra R S` instead of `1 : Submodule R S`, since the map `R →ₗ[R] (1 : Submodule R S)` is not defined directly in mathlib yet. - `Submodule.mulLeftMap`: if `m : ι → M` is a family of elements, then there is an `R`-linear map from `ι →₀ N` to `S` which maps `{ n_i }` to the sum of `m_i * n_i`. - `Submodule.mulRightMap`: if `n : ι → N` is a family of elements, then there is an `R`-linear map from `ι →₀ M` to `S` which maps `{ m_i }` to the sum of `m_i * n_i`.
... used in the definition of linearly disjointness.
Let
Rbe a commutative ring,Sbe anR-algebra (not necessarily commutative).Let
MandNbeR-submodules inS.Submodule.mulMap: the naturalR-linear mapM ⊗[R] N →ₗ[R] Sinduced by the multiplication in
S, whose image isM * N(Submodule.mulMap_range).Submodule.mulMap': the natural mapM ⊗[R] N →ₗ[R] M * Ninduced by multiplication in
S, which is surjective (Submodule.mulMap'_surjective).Submodule.lTensorOne,Submodule.rTensorOne: the natural isomorphism betweeni(R) ⊗[R] NandN, resp.M ⊗[R] i(R)andM, induced by multiplication inS,here
i : R → Sis the structure map. They generalizeTensorProduct.lidand
TensorProduct.rid, asi(R)is not necessarily isomorphic toR.Note that we use
⊥ : Subalgebra R Sinstead of1 : Submodule R S, since the mapR →ₗ[R] (1 : Submodule R S)is not defined directly in mathlib yet.Submodule.mulLeftMap: ifm : ι → Mis a family of elements, then there is anR-linear mapfrom
ι →₀ NtoSwhich maps{ n_i }to the sum ofm_i * n_i.Submodule.mulRightMap: ifn : ι → Nis a family of elements, then there is anR-linear mapfrom
ι →₀ MtoSwhich maps{ m_i }to the sum ofm_i * n_i.discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2312498.20some.20linear.20maps.20induced.20by.20mul.2E.20for.20submodules