@@ -65,8 +65,6 @@ theorem bot_colon : colon (⊥ : Submodule R M) (N : Set M) = N.annihilator := b
6565 ext x
6666 simp [mem_colon, mem_annihilator]
6767
68- @ [deprecated (since := "2026-01-11" )] alias colon_bot := bot_colon
69-
7068theorem colon_mono (hn : N₁ ≤ N₂) (hs : S₁ ⊆ S₂) : N₁.colon S₂ ≤ N₂.colon S₁ :=
7169 fun _ hrns ↦ mem_colon.mpr fun s₁ hs₁ ↦ hn <| (mem_colon).mp hrns s₁ <| hs hs₁
7270
@@ -95,6 +93,11 @@ lemma inf_colon : (N₁ ⊓ N₂).colon S = N₁.colon S ⊓ N₂.colon S := by
9593lemma iInf_colon {ι : Sort *} (f : ι → Submodule R M) : (⨅ i, f i).colon S = ⨅ i, (f i).colon S := by
9694 aesop (add simp mem_colon)
9795
96+ @[simp]
97+ lemma colon_finsetInf {ι : Type *} (s : Finset ι) (f : ι → Submodule R M) :
98+ (s.inf f).colon S = s.inf (fun i ↦ (f i).colon S) := by
99+ aesop (add simp mem_colon)
100+
98101@[simp]
99102lemma top_colon : (⊤ : Submodule R M).colon S = ⊤ := by
100103 aesop (add simp mem_colon)
@@ -111,17 +114,26 @@ lemma colon_iUnion {ι : Sort*} (f : ι → Set M) : N.colon (⋃ i, f i) = ⨅
111114lemma colon_empty : N.colon (∅ : Set M) = ⊤ := by
112115 aesop (add simp mem_colon)
113116
117+ lemma colon_singleton_zero : N.colon {0 } = ⊤ := by
118+ simp
119+
120+ lemma colon_bot : N.colon ((⊥ : Submodule R M) : Set M) = ⊤ := by
121+ simp
122+
114123end Semiring
115124
116125section CommSemiring
117126
118127variable [CommSemiring R] [AddCommMonoid M] [Module R M]
119- variable {N : Submodule R M} {S : Set M}
128+ variable {N N' : Submodule R M} {S : Set M}
120129
121130@ [deprecated mem_colon (since := "2026-01-15" )]
122131theorem mem_colon' {r} : r ∈ N.colon S ↔ S ≤ comap (r • (LinearMap.id : M →ₗ[R] M)) N :=
123132 mem_colon
124133
134+ theorem mem_colon_iff_le {r} : r ∈ N.colon N' ↔ r • N' ≤ N := by
135+ aesop (add simp SetLike.coe_subset_coe)
136+
125137/-- A variant for arbitrary sets in commutative semirings -/
126138theorem bot_colon' : (⊥ : Submodule R M).colon S = (span R S).annihilator := by
127139 aesop (add simp [mem_colon, mem_annihilator_span])
0 commit comments