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(RingTheory/LinearDisjoint): definition and properties of linearly disjoint of subalgebras (1) #17820

Closed
wants to merge 7 commits into from

Conversation

acmepjz
Copy link
Collaborator

@acmepjz acmepjz commented Oct 16, 2024

Main definitions:

  • Subalgebra.LinearDisjoint: two subalgebras are linearly disjoint, if they are
    linearly disjoint as submodules (Submodule.LinearDisjoint).

  • Subalgebra.LinearDisjoint.mulMap: if two subalgebras A and B of S / R are
    linearly disjoint, then there is A ⊗[R] B ≃ₐ[R] A ⊔ B induced by multiplication in S.

Equivalent characterization of linearly disjointness:

  • Subalgebra.LinearDisjoint.linearIndependent_left_of_flat:
    if A and B are linearly disjoint, if B is a flat R-module, then for any family of
    R-linearly independent elements of A, they are also B-linearly independent.

  • Subalgebra.LinearDisjoint.of_basis_left:
    conversely, if a basis of A is also B-linearly independent, then A and B are linearly disjoint.

  • Subalgebra.LinearDisjoint.linearIndependent_right_of_flat:
    if A and B are linearly disjoint, if A is a flat R-module, then for any family of
    R-linearly independent elements of B, they are also A-linearly independent.

  • Subalgebra.LinearDisjoint.of_basis_right:
    conversely, if a basis of B is also A-linearly independent,
    then A and B are linearly disjoint.

  • Subalgebra.LinearDisjoint.linearIndependent_mul_of_flat:
    if A and B are linearly disjoint, if one of A and B is flat, then for any family of
    R-linearly independent elements { a_i } of A, and any family of
    R-linearly independent elements { b_j } of B, the family { a_i * b_j } in S is
    also R-linearly independent.

  • Subalgebra.LinearDisjoint.of_basis_mul:
    conversely, if { a_i } is an R-basis of A, if { b_j } is an R-basis of B,
    such that the family { a_i * b_j } in S is R-linearly independent,
    then A and B are linearly disjoint.

Other main results:

  • Subalgebra.LinearDisjoint.symm_of_commute, Subalgebra.linearDisjoint_symm_of_commute:
    linearly disjoint is symmetric under some commutative conditions.

  • Subalgebra.LinearDisjoint.bot_left, Subalgebra.LinearDisjoint.bot_right:
    the image of R in S is linearly disjoint with any other subalgebras.

  • Subalgebra.LinearDisjoint.sup_free_of_free: the compositum of two linearly disjoint
    subalgebras is a free module, if two subalgebras are also free modules.

  • Subalgebra.LinearDisjoint.inf_eq_bot_of_commute, Subalgebra.LinearDisjoint.inf_eq_bot:
    if A and B are linearly disjoint, under suitable technical conditions, they are disjoint.

The results with name containing "of_commute" also have corresponding specified versions
assuming S is commutative.


discussion: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Linearly.20disjoint

Open in Gitpod

Copy link

github-actions bot commented Oct 16, 2024

PR summary e3b75b0cf5

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.RingTheory.LinearDisjoint 1586

Declarations diff

+ LinearDisjoint
+ LinearDisjoint.of_subsingleton
+ LinearDisjoint.symm
+ LinearDisjoint.symm_of_commute
+ bot_left
+ bot_right
+ eq_bot_of_commute_of_self
+ eq_bot_of_self
+ inf_eq_bot
+ inf_eq_bot_of_commute
+ linearDisjoint_iff
+ linearDisjoint_symm
+ linearDisjoint_symm_of_commute
+ linearIndependent_left_of_flat
+ linearIndependent_left_of_flat_of_commute
+ linearIndependent_left_op_of_flat
+ linearIndependent_mul_of_flat
+ linearIndependent_mul_of_flat_left
+ linearIndependent_mul_of_flat_right
+ linearIndependent_right_of_flat
+ mulLeftMap_ker_eq_bot_iff_linearIndependent_op
+ mulMap
+ mulRightMap_ker_eq_bot_iff_linearIndependent
+ of_basis_left
+ of_basis_left_of_commute
+ of_basis_left_op
+ of_basis_mul
+ of_basis_right
+ of_le_left_of_flat
+ of_le_of_flat_left
+ of_le_of_flat_right
+ of_le_right_of_flat
+ of_linearDisjoint_finite
+ of_linearDisjoint_finite_left
+ of_linearDisjoint_finite_right
+ sup_free_of_free
+ val_mulMap_tmul

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.

@erdOne
Copy link
Member

erdOne commented Oct 16, 2024

Sorry for dropping the ball on this. This looks good to me. I'll wait if @kbuzzard wants to give it a look and I'll maintainer merge it this evening otherwise.

Copy link
Member

@kbuzzard kbuzzard left a comment

Choose a reason for hiding this comment

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

This is a great piece of work!

Mathlib/RingTheory/LinearDisjoint.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/LinearDisjoint.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/LinearDisjoint.lean Outdated Show resolved Hide resolved
@kbuzzard kbuzzard added the awaiting-author A reviewer has asked the author a question or requested changes label Oct 16, 2024
@acmepjz
Copy link
Collaborator Author

acmepjz commented Oct 16, 2024

Done.

@acmepjz acmepjz removed the awaiting-author A reviewer has asked the author a question or requested changes label Oct 16, 2024
@acmepjz
Copy link
Collaborator Author

acmepjz commented Oct 26, 2024

ping what's the progress?

@erdOne
Copy link
Member

erdOne commented Oct 28, 2024

Thanks!
maintainer merge

Copy link

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

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.

bors d+

Mathlib/RingTheory/LinearDisjoint.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/LinearDisjoint.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/LinearDisjoint.lean Outdated Show resolved Hide resolved
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Oct 28, 2024

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

Co-authored-by: Johan Commelin <johan@commelin.net>
@acmepjz
Copy link
Collaborator Author

acmepjz commented Oct 28, 2024

bors r+

mathlib-bors bot pushed a commit that referenced this pull request Oct 28, 2024
…y disjoint of subalgebras (1) (#17820)

Main definitions:

- `Subalgebra.LinearDisjoint`: two subalgebras are linearly disjoint, if they are
  linearly disjoint as submodules (`Submodule.LinearDisjoint`).

- `Subalgebra.LinearDisjoint.mulMap`: if two subalgebras `A` and `B` of `S / R` are
  linearly disjoint, then there is `A ⊗[R] B ≃ₐ[R] A ⊔ B` induced by multiplication in `S`.

Equivalent characterization of linearly disjointness:

- `Subalgebra.LinearDisjoint.linearIndependent_left_of_flat`:
  if `A` and `B` are linearly disjoint, if `B` is a flat `R`-module, then for any family of
  `R`-linearly independent elements of `A`, they are also `B`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_left`:
  conversely, if a basis of `A` is also `B`-linearly independent, then `A` and `B` are linearly disjoint.

- `Subalgebra.LinearDisjoint.linearIndependent_right_of_flat`:
  if `A` and `B` are linearly disjoint, if `A` is a flat `R`-module, then for any family of
  `R`-linearly independent elements of `B`, they are also `A`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_right`:
  conversely, if a basis of `B` is also `A`-linearly independent,
  then `A` and `B` are linearly disjoint.

- `Subalgebra.LinearDisjoint.linearIndependent_mul_of_flat`:
  if `A` and `B` are linearly disjoint, if one of `A` and `B` is flat, then for any family of
  `R`-linearly independent elements `{ a_i }` of `A`, and any family of
  `R`-linearly independent elements `{ b_j }` of `B`, the family `{ a_i * b_j }` in `S` is
  also `R`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_mul`:
  conversely, if `{ a_i }` is an `R`-basis of `A`, if `{ b_j }` is an `R`-basis of `B`,
  such that the family `{ a_i * b_j }` in `S` is `R`-linearly independent,
  then `A` and `B` are linearly disjoint.

Other main results:

- `Subalgebra.LinearDisjoint.symm_of_commute`, `Subalgebra.linearDisjoint_symm_of_commute`:
  linearly disjoint is symmetric under some commutative conditions.

- `Subalgebra.LinearDisjoint.bot_left`, `Subalgebra.LinearDisjoint.bot_right`:
  the image of `R` in `S` is linearly disjoint with any other subalgebras.

- `Subalgebra.LinearDisjoint.sup_free_of_free`: the compositum of two linearly disjoint
  subalgebras is a free module, if two subalgebras are also free modules.

- `Subalgebra.LinearDisjoint.inf_eq_bot_of_commute`, `Subalgebra.LinearDisjoint.inf_eq_bot`:
  if `A` and `B` are linearly disjoint, under suitable technical conditions, they are disjoint.

The results with name containing "of_commute" also have corresponding specified versions
assuming `S` is commutative.
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Oct 28, 2024

Build failed (retrying...):

mathlib-bors bot pushed a commit that referenced this pull request Oct 28, 2024
…y disjoint of subalgebras (1) (#17820)

Main definitions:

- `Subalgebra.LinearDisjoint`: two subalgebras are linearly disjoint, if they are
  linearly disjoint as submodules (`Submodule.LinearDisjoint`).

- `Subalgebra.LinearDisjoint.mulMap`: if two subalgebras `A` and `B` of `S / R` are
  linearly disjoint, then there is `A ⊗[R] B ≃ₐ[R] A ⊔ B` induced by multiplication in `S`.

Equivalent characterization of linearly disjointness:

- `Subalgebra.LinearDisjoint.linearIndependent_left_of_flat`:
  if `A` and `B` are linearly disjoint, if `B` is a flat `R`-module, then for any family of
  `R`-linearly independent elements of `A`, they are also `B`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_left`:
  conversely, if a basis of `A` is also `B`-linearly independent, then `A` and `B` are linearly disjoint.

- `Subalgebra.LinearDisjoint.linearIndependent_right_of_flat`:
  if `A` and `B` are linearly disjoint, if `A` is a flat `R`-module, then for any family of
  `R`-linearly independent elements of `B`, they are also `A`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_right`:
  conversely, if a basis of `B` is also `A`-linearly independent,
  then `A` and `B` are linearly disjoint.

- `Subalgebra.LinearDisjoint.linearIndependent_mul_of_flat`:
  if `A` and `B` are linearly disjoint, if one of `A` and `B` is flat, then for any family of
  `R`-linearly independent elements `{ a_i }` of `A`, and any family of
  `R`-linearly independent elements `{ b_j }` of `B`, the family `{ a_i * b_j }` in `S` is
  also `R`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_mul`:
  conversely, if `{ a_i }` is an `R`-basis of `A`, if `{ b_j }` is an `R`-basis of `B`,
  such that the family `{ a_i * b_j }` in `S` is `R`-linearly independent,
  then `A` and `B` are linearly disjoint.

Other main results:

- `Subalgebra.LinearDisjoint.symm_of_commute`, `Subalgebra.linearDisjoint_symm_of_commute`:
  linearly disjoint is symmetric under some commutative conditions.

- `Subalgebra.LinearDisjoint.bot_left`, `Subalgebra.LinearDisjoint.bot_right`:
  the image of `R` in `S` is linearly disjoint with any other subalgebras.

- `Subalgebra.LinearDisjoint.sup_free_of_free`: the compositum of two linearly disjoint
  subalgebras is a free module, if two subalgebras are also free modules.

- `Subalgebra.LinearDisjoint.inf_eq_bot_of_commute`, `Subalgebra.LinearDisjoint.inf_eq_bot`:
  if `A` and `B` are linearly disjoint, under suitable technical conditions, they are disjoint.

The results with name containing "of_commute" also have corresponding specified versions
assuming `S` is commutative.
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Oct 28, 2024

Build failed (retrying...):

@acmepjz
Copy link
Collaborator Author

acmepjz commented Oct 28, 2024

bors r-

@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Oct 28, 2024

Canceled.

@acmepjz
Copy link
Collaborator Author

acmepjz commented Oct 28, 2024

bors r+

mathlib-bors bot pushed a commit that referenced this pull request Oct 28, 2024
…y disjoint of subalgebras (1) (#17820)

Main definitions:

- `Subalgebra.LinearDisjoint`: two subalgebras are linearly disjoint, if they are
  linearly disjoint as submodules (`Submodule.LinearDisjoint`).

- `Subalgebra.LinearDisjoint.mulMap`: if two subalgebras `A` and `B` of `S / R` are
  linearly disjoint, then there is `A ⊗[R] B ≃ₐ[R] A ⊔ B` induced by multiplication in `S`.

Equivalent characterization of linearly disjointness:

- `Subalgebra.LinearDisjoint.linearIndependent_left_of_flat`:
  if `A` and `B` are linearly disjoint, if `B` is a flat `R`-module, then for any family of
  `R`-linearly independent elements of `A`, they are also `B`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_left`:
  conversely, if a basis of `A` is also `B`-linearly independent, then `A` and `B` are linearly disjoint.

- `Subalgebra.LinearDisjoint.linearIndependent_right_of_flat`:
  if `A` and `B` are linearly disjoint, if `A` is a flat `R`-module, then for any family of
  `R`-linearly independent elements of `B`, they are also `A`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_right`:
  conversely, if a basis of `B` is also `A`-linearly independent,
  then `A` and `B` are linearly disjoint.

- `Subalgebra.LinearDisjoint.linearIndependent_mul_of_flat`:
  if `A` and `B` are linearly disjoint, if one of `A` and `B` is flat, then for any family of
  `R`-linearly independent elements `{ a_i }` of `A`, and any family of
  `R`-linearly independent elements `{ b_j }` of `B`, the family `{ a_i * b_j }` in `S` is
  also `R`-linearly independent.

- `Subalgebra.LinearDisjoint.of_basis_mul`:
  conversely, if `{ a_i }` is an `R`-basis of `A`, if `{ b_j }` is an `R`-basis of `B`,
  such that the family `{ a_i * b_j }` in `S` is `R`-linearly independent,
  then `A` and `B` are linearly disjoint.

Other main results:

- `Subalgebra.LinearDisjoint.symm_of_commute`, `Subalgebra.linearDisjoint_symm_of_commute`:
  linearly disjoint is symmetric under some commutative conditions.

- `Subalgebra.LinearDisjoint.bot_left`, `Subalgebra.LinearDisjoint.bot_right`:
  the image of `R` in `S` is linearly disjoint with any other subalgebras.

- `Subalgebra.LinearDisjoint.sup_free_of_free`: the compositum of two linearly disjoint
  subalgebras is a free module, if two subalgebras are also free modules.

- `Subalgebra.LinearDisjoint.inf_eq_bot_of_commute`, `Subalgebra.LinearDisjoint.inf_eq_bot`:
  if `A` and `B` are linearly disjoint, under suitable technical conditions, they are disjoint.

The results with name containing "of_commute" also have corresponding specified versions
assuming `S` is commutative.
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Oct 28, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(RingTheory/LinearDisjoint): definition and properties of linearly disjoint of subalgebras (1) [Merged by Bors] - feat(RingTheory/LinearDisjoint): definition and properties of linearly disjoint of subalgebras (1) Oct 28, 2024
@mathlib-bors mathlib-bors bot closed this Oct 28, 2024
@mathlib-bors mathlib-bors bot deleted the acmepjz_lin_disj_subalg_1 branch October 28, 2024 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated maintainer-merge t-algebra Algebra (groups, rings, fields, etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants