[Merged by Bors] - feat: left-Noetherian rings and commutative rings satisfy OrzechProperty#13425
[Merged by Bors] - feat: left-Noetherian rings and commutative rings satisfy OrzechProperty#13425
OrzechProperty#13425Conversation
|
It all looks good to me, thanks. |
Mathlib/LinearAlgebra/Prod.lean
Outdated
| #align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailing | ||
|
|
||
| end Tunnel | ||
| -- NOTE: the tunnel and tailing APIs are removed |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
This reverts commit c51ef42.
|
✌️ acmepjz can now approve this pull request. To approve and merge a pull request, simply reply with |
# Conflicts: # Mathlib/RingTheory/Noetherian.lean
|
bors r+ |
…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.
|
Pull request successfully merged into master. Build succeeded: |
OrzechPropertyOrzechProperty
…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.
…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.
…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.
This is part 2 of #12076.
It states that if
Ris a ring (not necessarily commutative) andMis a NoetherianR-module (based on the proof in https://math.stackexchange.com/a/1066128), orRis a commutative ring andMis a finitely generatedR-module (based on the proof in https://math.stackexchange.com/a/1066110),if
Nis a submodule ofM,f : N -> Mis a surjectiveR-module homomorphism, then it is also injective.These results generalize
(IsNoetherian|Module.Finite).injective_of_surjective_endomorphism.The proof for Noetherian case uses
LinearMap.iterateMapComapwhich is put intoMathlib/Algebra/Module/Submodule/IterateMapComap.lean.The changed proof makes
LinearMap.tunnelandLinearMap.tailingnot used in any other parts of mathlib. Remove them or not is leaved for future discussion.discussion: https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/.2312076.20Orzech's.20theorem