Skip to content

[Merged by Bors] - feat: left-Noetherian rings and commutative rings satisfy OrzechProperty#13425

Closed
acmepjz wants to merge 5 commits intomasterfrom
acmepjz_orzech_1
Closed

[Merged by Bors] - feat: left-Noetherian rings and commutative rings satisfy OrzechProperty#13425
acmepjz wants to merge 5 commits intomasterfrom
acmepjz_orzech_1

Conversation

@acmepjz
Copy link
Copy Markdown
Collaborator

@acmepjz acmepjz commented May 31, 2024

This is part 2 of #12076.

It states that if

if N is a submodule of M, f : N -> M is a surjective R-module homomorphism, then it is also injective.

These results generalize (IsNoetherian|Module.Finite).injective_of_surjective_endomorphism.

The proof for Noetherian case uses LinearMap.iterateMapComap which is put into Mathlib/Algebra/Module/Submodule/IterateMapComap.lean.

The changed proof makes LinearMap.tunnel and LinearMap.tailing not used in any other parts of mathlib. Remove them or not is leaved for future discussion.


Open in Gitpod

discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2312076.20Orzech's.20theorem

@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 May 31, 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 May 31, 2024
@AntoineChambert-Loir
Copy link
Copy Markdown
Collaborator

It all looks good to me, thanks.

#align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailing

end Tunnel
-- NOTE: the tunnel and tailing APIs are removed
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could you please add some instructions/pointers about how they are superseded?
Would it make sense to leave the API in place for now, but add @[deprecated "some note"] to these declarations for a while?

Copy link
Copy Markdown
Collaborator Author

@acmepjz acmepjz Jun 3, 2024

Choose a reason for hiding this comment

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

Could you please add some instructions/pointers about how they are superseded?

That's the problem. They are not superseded, but only removed. There are no direct replacements for them. In the whole mathlib, they were only used in the proof of IsNoetherian.equivPUnitOfProdInjective. But now it's proved by IsNoetherian.injective_of_surjective_of_injective which uses iterateMapComap. This makes them not used by mathlib anymore. I see that the removal of them will break external projects using them. There are some discussions around https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2312076.20Orzech's.20theorem/near/439460160 and #12076 (comment).

Would it make sense to leave the API in place for now

I think maybe it's better. Just leave these for now; remove them or not is a future PR.

@jcommelin jcommelin added awaiting-author A reviewer has asked the author a question or requested changes. and removed awaiting-review labels Jun 3, 2024
@acmepjz acmepjz added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Jun 3, 2024
@ghost ghost added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jun 3, 2024
Copy link
Copy Markdown
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 d+

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jun 4, 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.

acmepjz added 2 commits June 4, 2024 18:54
# Conflicts:
#	Mathlib/RingTheory/Noetherian.lean
@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 4, 2024
@acmepjz
Copy link
Copy Markdown
Collaborator Author

acmepjz commented Jun 4, 2024

bors r+

mathlib-bors bot pushed a commit that referenced this pull request Jun 4, 2024
…erty` (#13425)

This is part 2 of #12076.

It states that if

- `R` is a ring (not necessarily commutative) and `M` is a Noetherian `R`-module (based on the proof in <https://math.stackexchange.com/a/1066128>), or
- `R` is a commutative ring and `M` is a finitely generated `R`-module (based on the proof in <https://math.stackexchange.com/a/1066110>),

if `N` is a submodule of `M`, `f : N -> M` is a surjective `R`-module homomorphism, then it is also injective.

These results generalize `(IsNoetherian|Module.Finite).injective_of_surjective_endomorphism`.

The proof for Noetherian case uses `LinearMap.iterateMapComap` which is put into `Mathlib/Algebra/Module/Submodule/IterateMapComap.lean`.

The changed proof makes `LinearMap.tunnel` and `LinearMap.tailing` not used in any other parts of mathlib. Remove them or not is leaved for future discussion.
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jun 4, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat: left-Noetherian rings and commutative rings satisfy OrzechProperty [Merged by Bors] - feat: left-Noetherian rings and commutative rings satisfy OrzechProperty Jun 4, 2024
@mathlib-bors mathlib-bors bot closed this Jun 4, 2024
@mathlib-bors mathlib-bors bot deleted the acmepjz_orzech_1 branch June 4, 2024 13:47
callesonne pushed a commit that referenced this pull request Jun 4, 2024
…erty` (#13425)

This is part 2 of #12076.

It states that if

- `R` is a ring (not necessarily commutative) and `M` is a Noetherian `R`-module (based on the proof in <https://math.stackexchange.com/a/1066128>), or
- `R` is a commutative ring and `M` is a finitely generated `R`-module (based on the proof in <https://math.stackexchange.com/a/1066110>),

if `N` is a submodule of `M`, `f : N -> M` is a surjective `R`-module homomorphism, then it is also injective.

These results generalize `(IsNoetherian|Module.Finite).injective_of_surjective_endomorphism`.

The proof for Noetherian case uses `LinearMap.iterateMapComap` which is put into `Mathlib/Algebra/Module/Submodule/IterateMapComap.lean`.

The changed proof makes `LinearMap.tunnel` and `LinearMap.tailing` not used in any other parts of mathlib. Remove them or not is leaved for future discussion.
grunweg pushed a commit that referenced this pull request Jun 7, 2024
…erty` (#13425)

This is part 2 of #12076.

It states that if

- `R` is a ring (not necessarily commutative) and `M` is a Noetherian `R`-module (based on the proof in <https://math.stackexchange.com/a/1066128>), or
- `R` is a commutative ring and `M` is a finitely generated `R`-module (based on the proof in <https://math.stackexchange.com/a/1066110>),

if `N` is a submodule of `M`, `f : N -> M` is a surjective `R`-module homomorphism, then it is also injective.

These results generalize `(IsNoetherian|Module.Finite).injective_of_surjective_endomorphism`.

The proof for Noetherian case uses `LinearMap.iterateMapComap` which is put into `Mathlib/Algebra/Module/Submodule/IterateMapComap.lean`.

The changed proof makes `LinearMap.tunnel` and `LinearMap.tailing` not used in any other parts of mathlib. Remove them or not is leaved for future discussion.
AntoineChambert-Loir pushed a commit that referenced this pull request Jun 20, 2024
…erty` (#13425)

This is part 2 of #12076.

It states that if

- `R` is a ring (not necessarily commutative) and `M` is a Noetherian `R`-module (based on the proof in <https://math.stackexchange.com/a/1066128>), or
- `R` is a commutative ring and `M` is a finitely generated `R`-module (based on the proof in <https://math.stackexchange.com/a/1066110>),

if `N` is a submodule of `M`, `f : N -> M` is a surjective `R`-module homomorphism, then it is also injective.

These results generalize `(IsNoetherian|Module.Finite).injective_of_surjective_endomorphism`.

The proof for Noetherian case uses `LinearMap.iterateMapComap` which is put into `Mathlib/Algebra/Module/Submodule/IterateMapComap.lean`.

The changed proof makes `LinearMap.tunnel` and `LinearMap.tailing` not used in any other parts of mathlib. Remove them or not is leaved for future discussion.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-algebra Algebra (groups, rings, fields, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants