Skip to content

[Merged by Bors] - feat(LinearAlgebra/TensorProduct/Submodule): add some linear maps induced by multiplication for submodules#12498

Closed
acmepjz wants to merge 15 commits intomasterfrom
acmepjz_mul_submodule
Closed

[Merged by Bors] - feat(LinearAlgebra/TensorProduct/Submodule): add some linear maps induced by multiplication for submodules#12498
acmepjz wants to merge 15 commits intomasterfrom
acmepjz_mul_submodule

Conversation

@acmepjz
Copy link
Copy Markdown
Collaborator

@acmepjz acmepjz commented Apr 28, 2024

... 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.


discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2312498.20some.20linear.20maps.20induced.20by.20mul.2E.20for.20submodules

Open in Gitpod

@acmepjz acmepjz added awaiting-review awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. t-algebra Algebra (groups, rings, fields, etc) labels Apr 28, 2024
@github-actions github-actions bot removed the awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. label Apr 29, 2024
@acmepjz acmepjz added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels Apr 29, 2024
@acmepjz acmepjz added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Apr 30, 2024
@erdOne erdOne added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels May 1, 2024
@acmepjz acmepjz added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels May 1, 2024
Copy link
Copy Markdown
Member

@erdOne erdOne left a comment

Choose a reason for hiding this comment

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

I hope these work? These comments also apply to rTensorOne.

@acmepjz acmepjz added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels May 1, 2024
@acmepjz
Copy link
Copy Markdown
Collaborator Author

acmepjz commented May 1, 2024

I hope these work? These comments also apply to rTensorOne.

Unfortunately, this file does not import the definition of Subalgebra. 😂 To minimize the dependency, I suggest not change them.

@acmepjz acmepjz added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels May 1, 2024
@ghost ghost removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jun 25, 2024
@acmepjz acmepjz added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels Jun 25, 2024
@acmepjz acmepjz added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Jun 25, 2024
@erdOne
Copy link
Copy Markdown
Member

erdOne commented Jun 25, 2024

You can also use (1 : Subalgebra R A) if you prefer? Anyways the <,> was the only concern I had and this lgtm otherwise, and I'm happy to maintainer merge it once you think it is ready and CI passes.

@acmepjz
Copy link
Copy Markdown
Collaborator Author

acmepjz commented Jun 25, 2024

You can also use (1 : Subalgebra R A) if you prefer?

No, there is no instance One (Subalgebra R A) but only One (Submodule R A). I think using ⊥ : Subalgebra R S is OK; I just have to adjust code in my linearly disjoint PR.

I'm happy to maintainer merge it once you think it is ready and CI passes.

Thanks. Now I'm satisfied (sort of) with current code.

@erdOne
Copy link
Copy Markdown
Member

erdOne commented Jun 25, 2024

Ok. Sorry again for the long wait!
Thanks!
maintainer merge

@github-actions
Copy link
Copy Markdown

🚀 Pull request has been placed on the maintainer queue by erdOne.

@github-actions github-actions bot added the maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. label Jun 25, 2024
@riccardobrasca
Copy link
Copy Markdown
Member

Thanks!

bors merge

@github-actions github-actions bot added ready-to-merge This PR has been sent to bors. and removed awaiting-review labels Jun 26, 2024
mathlib-bors bot pushed a commit that referenced this pull request Jun 26, 2024
…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`.
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jun 26, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(LinearAlgebra/TensorProduct/Submodule): add some linear maps induced by multiplication for submodules [Merged by Bors] - feat(LinearAlgebra/TensorProduct/Submodule): add some linear maps induced by multiplication for submodules Jun 26, 2024
@mathlib-bors mathlib-bors bot closed this Jun 26, 2024
@mathlib-bors mathlib-bors bot deleted the acmepjz_mul_submodule branch June 26, 2024 12:03
kbuzzard pushed a commit that referenced this pull request Jun 26, 2024
…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`.
dagurtomas pushed a commit that referenced this pull request Jul 2, 2024
…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`.
mathlib-bors bot pushed a commit that referenced this pull request Jul 16, 2024
…d by multiplication for subalgebras (#14611)

This is the follow-up of the PR #12498. It is used in the definition of linearly disjointness (#9651).
mathlib-bors bot pushed a commit that referenced this pull request Jul 16, 2024
…d by multiplication for subalgebras (#14611)

This is the follow-up of the PR #12498. It is used in the definition of linearly disjointness (#9651).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. 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.

4 participants