-
Notifications
You must be signed in to change notification settings - Fork 316
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: define finite length modules and show equivalence with `IsNoeth…
…erian ∧ IsArtinian` (#17478) and equivalence with the existence of a CompositionSeries. Add order-theoretic results: a simple order is finite; WellFoundedLT implies every non-top element is covered by some other element, and the dual result; WellFoundedLT + WellFoundedGT implies there exists a finite sequence from ⊥ to ⊤ with each element covering the previous one. Also generalize two proof_wanted statements about semisimple modules/rings.
- Loading branch information
1 parent
8e7a300
commit 957d5dd
Showing
7 changed files
with
120 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/- | ||
Copyright (c) 2024 Junyan Xu. All rights reserved. | ||
Released under Apache 2.0 license as described in the file LICENSE. | ||
Authors: Junyan Xu | ||
-/ | ||
import Mathlib.Order.Atoms.Finite | ||
import Mathlib.RingTheory.Artinian | ||
|
||
/-! | ||
# Modules of finite length | ||
We define modules of finite length (`IsFiniteLength`) to be finite iterated extensions of | ||
simple modules, and show that a module is of finite length iff it is both Noetherian and Artinian, | ||
iff it admits a composition series. | ||
We do not make `IsFiniteLength` a class, instead we use `[IsNoetherian R M] [IsArtinian R M]`. | ||
## Tag | ||
Finite length, Composition series | ||
-/ | ||
|
||
universe u | ||
|
||
variable (R : Type*) [Ring R] | ||
|
||
/-- A module of finite length is either trivial or a simple extension of a module known | ||
to be of finite length. -/ | ||
inductive IsFiniteLength : ∀ (M : Type u) [AddCommGroup M] [Module R M], Prop | ||
| of_subsingleton {M} [AddCommGroup M] [Module R M] [Subsingleton M] : IsFiniteLength M | ||
| of_simple_quotient {M} [AddCommGroup M] [Module R M] {N : Submodule R M} | ||
[IsSimpleModule R (M ⧸ N)] : IsFiniteLength N → IsFiniteLength M | ||
|
||
variable {R} {M N : Type*} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] | ||
|
||
theorem LinearEquiv.isFiniteLength (e : M ≃ₗ[R] N) | ||
(h : IsFiniteLength R M) : IsFiniteLength R N := by | ||
induction' h with M _ _ _ M _ _ S _ _ ih generalizing N | ||
· have := e.symm.toEquiv.subsingleton; exact .of_subsingleton | ||
· have : IsSimpleModule R (N ⧸ Submodule.map (e : M →ₗ[R] N) S) := | ||
IsSimpleModule.congr (Submodule.Quotient.equiv S _ e rfl).symm | ||
exact .of_simple_quotient (ih <| e.submoduleMap S) | ||
|
||
variable (R M) in | ||
theorem exists_compositionSeries_of_isNoetherian_isArtinian [IsNoetherian R M] [IsArtinian R M] : | ||
∃ s : CompositionSeries (Submodule R M), s.head = ⊥ ∧ s.last = ⊤ := by | ||
obtain ⟨f, f0, n, hn⟩ := exists_covBy_seq_of_wellFoundedLT_wellFoundedGT (Submodule R M) | ||
exact ⟨⟨n, fun i ↦ f i, fun i ↦ hn.2 i i.2⟩, f0.eq_bot, hn.1.eq_top⟩ | ||
|
||
theorem isFiniteLength_of_exists_compositionSeries | ||
(h : ∃ s : CompositionSeries (Submodule R M), s.head = ⊥ ∧ s.last = ⊤) : | ||
IsFiniteLength R M := | ||
Submodule.topEquiv.isFiniteLength <| by | ||
obtain ⟨s, s_head, s_last⟩ := h | ||
rw [← s_last] | ||
suffices ∀ i, IsFiniteLength R (s i) from this (Fin.last _) | ||
intro i | ||
induction' i using Fin.induction with i ih | ||
· change IsFiniteLength R s.head; rw [s_head]; exact .of_subsingleton | ||
let cov := s.step i | ||
have := (covBy_iff_quot_is_simple cov.le).mp cov | ||
have := ((s i.castSucc).comap (s i.succ).subtype).equivMapOfInjective | ||
_ (Submodule.injective_subtype _) | ||
rw [Submodule.map_comap_subtype, inf_of_le_right cov.le] at this | ||
exact .of_simple_quotient (this.symm.isFiniteLength ih) | ||
|
||
theorem isFiniteLength_iff_isNoetherian_isArtinian : | ||
IsFiniteLength R M ↔ IsNoetherian R M ∧ IsArtinian R M := | ||
⟨fun h ↦ h.rec (fun {M} _ _ _ ↦ ⟨inferInstance, inferInstance⟩) fun M _ _ {N} _ _ ⟨_, _⟩ ↦ | ||
⟨(isNoetherian_iff_submodule_quotient N).mpr ⟨‹_›, isNoetherian_iff'.mpr inferInstance⟩, | ||
(isArtinian_iff_submodule_quotient N).mpr ⟨‹_›, inferInstance⟩⟩, | ||
fun ⟨_, _⟩ ↦ isFiniteLength_of_exists_compositionSeries | ||
(exists_compositionSeries_of_isNoetherian_isArtinian R M)⟩ | ||
|
||
theorem isFiniteLength_iff_exists_compositionSeries : | ||
IsFiniteLength R M ↔ ∃ s : CompositionSeries (Submodule R M), s.head = ⊥ ∧ s.last = ⊤ := | ||
⟨fun h ↦ have ⟨_, _⟩ := isFiniteLength_iff_isNoetherian_isArtinian.mp h | ||
exists_compositionSeries_of_isNoetherian_isArtinian R M, | ||
isFiniteLength_of_exists_compositionSeries⟩ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters