Skip to content

Commit 8e261a2

Browse files
committed
feat: Module theory theorems (#37893)
Added three theorems: - annihilator_sup - torsionOf_eq_annihilator_span_singleton - annihilator_eq_iInf_torsionOf Co-authored-by: abeldonate <abeldm3108@gmail.com>
1 parent df5da3e commit 8e261a2

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

Mathlib/Algebra/Module/Torsion/Basic.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,18 @@ theorem torsionOf_eq_bot_iff_of_noZeroSMulDivisors [IsDomain R] [Module.IsTorsio
111111
· rw [mem_torsionOf_iff, smul_eq_zero] at hr
112112
tauto
113113

114+
@[simp]
115+
theorem annihilator_span_singleton_eq_torsionOf
116+
{R M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M] (x : M) :
117+
(R ∙ x).annihilator = torsionOf R M x := by
118+
simpa [torsionOf] using Submodule.annihilator_span_singleton x
119+
120+
/-- The annihilator of a module is the intersection of the torsion ideals of its elements. -/
121+
theorem _root_.Module.annihilator_eq_iInf_torsionOf :
122+
Module.annihilator R M = ⨅ x : M, torsionOf R M x := by
123+
ext r
124+
simp [Module.mem_annihilator]
125+
114126
/-- See also `iSupIndep.linearIndependent` which provides the same conclusion
115127
but requires the stronger hypothesis `Module.IsTorsionFree R M`. -/
116128
theorem iSupIndep.linearIndependent' {ι R M : Type*} {v : ι → M} [Ring R]

Mathlib/RingTheory/Ideal/Maps.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -943,6 +943,10 @@ theorem annihilator_iSup (ι : Sort w) (f : ι → Submodule R M) :
943943
(fun i ↦ mem_annihilator.1 <| (mem_iInf _).mp H i) (smul_zero _)
944944
fun m₁ m₂ h₁ h₂ ↦ by simp_rw [smul_add, h₁, h₂, add_zero]
945945

946+
theorem annihilator_sup (N P : Submodule R M) :
947+
(N ⊔ P).annihilator = N.annihilator ⊓ P.annihilator := by
948+
rw [← sSup_pair, sSup_eq_iSup, iSup_subtype', annihilator_iSup, ← iInf_pair, iInf_subtype']
949+
946950
theorem le_annihilator_iff {N : Submodule R M} {I : Ideal R} : I ≤ annihilator N ↔ I • N = ⊥ := by
947951
simp_rw [← le_bot_iff, smul_le, SetLike.le_def, mem_annihilator]; rfl
948952

0 commit comments

Comments
 (0)