Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 9b00046

Browse files
committed
chore(algebra,group_theory,right_theory,linear_algebra): add missing lemmas (#8948)
This adds: * `sub{group,ring,semiring}.map_id` * `submodule.add_mem_sup` * `submodule.map_add_le` And moves `submodule.sum_mem_supr` and `submodule.sum_mem_bsupr` to an earlier file.
1 parent 2beaa28 commit 9b00046

File tree

5 files changed

+31
-10
lines changed

5 files changed

+31
-10
lines changed

src/algebra/module/submodule_lattice.lean

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,26 @@ show S ≤ S ⊔ T, from le_sup_left
180180
lemma mem_sup_right {S T : submodule R M} : ∀ {x : M}, x ∈ T → x ∈ S ⊔ T :=
181181
show T ≤ S ⊔ T, from le_sup_right
182182

183+
lemma add_mem_sup {S T : submodule R M} {s t : M} (hs : s ∈ S) (ht : t ∈ T) : s + t ∈ S ⊔ T :=
184+
add_mem _ (mem_sup_left hs) (mem_sup_right ht)
185+
183186
lemma mem_supr_of_mem {ι : Sort*} {b : M} {p : ι → submodule R M} (i : ι) (h : b ∈ p i) :
184187
b ∈ (⨆i, p i) :=
185188
have p i ≤ (⨆i, p i) := le_supr p i,
186189
@this b h
187190

191+
open_locale big_operators
192+
193+
lemma sum_mem_supr {ι : Type*} [fintype ι] {f : ι → M} {p : ι → submodule R M}
194+
(h : ∀ i, f i ∈ p i) :
195+
∑ i, f i ∈ ⨆ i, p i :=
196+
sum_mem _ $ λ i hi, mem_supr_of_mem i (h i)
197+
198+
lemma sum_mem_bsupr {ι : Type*} {s : finset ι} {f : ι → M} {p : ι → submodule R M}
199+
(h : ∀ i ∈ s, f i ∈ p i) :
200+
∑ i in s, f i ∈ ⨆ i ∈ s, p i :=
201+
sum_mem _ $ λ i hi, mem_supr_of_mem i $ mem_supr_of_mem hi (h i hi)
202+
188203
/-! Note that `submodule.mem_supr` is provided in `linear_algebra/basic.lean`. -/
189204

190205
lemma mem_Sup_of_mem {S : set (submodule R M)} {s : submodule R M}

src/group_theory/subgroup.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,10 @@ mem_map_of_mem f x.prop
813813
lemma map_mono {f : G →* N} {K K' : subgroup G} : K ≤ K' → map f K ≤ map f K' :=
814814
image_subset _
815815

816+
@[simp, to_additive]
817+
lemma map_id : K.map (monoid_hom.id G) = K :=
818+
set_like.coe_injective $ image_id _
819+
816820
@[to_additive]
817821
lemma map_map (g : N →* P) (f : G →* N) : (K.map f).map g = K.map (g.comp f) :=
818822
set_like.coe_injective $ image_image _ _ _

src/linear_algebra/basic.lean

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,12 @@ image_subset _
766766
have ∃ (x : M), x ∈ p := ⟨0, p.zero_mem⟩,
767767
ext $ by simp [this, eq_comm]
768768

769+
lemma map_add_le (f g : M →ₗ[R] M₂) : map (f + g) p ≤ map f p + map g p :=
770+
begin
771+
rintros x ⟨m, hm, rfl⟩,
772+
exact add_mem_sup (mem_map_of_mem hm) (mem_map_of_mem hm),
773+
end
774+
769775
lemma range_map_nonempty (N : submodule R M) :
770776
(set.range (λ ϕ, submodule.map ϕ N : (M →ₗ[R] M₂) → submodule R M₂)).nonempty :=
771777
⟨_, set.mem_range.mpr ⟨0, rfl⟩⟩
@@ -1012,16 +1018,6 @@ begin
10121018
{ exact λ a x i hi, ⟨i, smul_mem _ a hi⟩ },
10131019
end
10141020

1015-
lemma sum_mem_bsupr {ι : Type*} {s : finset ι} {f : ι → M} {p : ι → submodule R M}
1016-
(h : ∀ i ∈ s, f i ∈ p i) :
1017-
∑ i in s, f i ∈ ⨆ i ∈ s, p i :=
1018-
sum_mem _ $ λ i hi, mem_supr_of_mem i $ mem_supr_of_mem hi (h i hi)
1019-
1020-
lemma sum_mem_supr {ι : Type*} [fintype ι] {f : ι → M} {p : ι → submodule R M}
1021-
(h : ∀ i, f i ∈ p i) :
1022-
∑ i, f i ∈ ⨆ i, p i :=
1023-
sum_mem _ $ λ i hi, mem_supr_of_mem i (h i)
1024-
10251021
@[simp] theorem mem_supr_of_directed {ι} [nonempty ι]
10261022
(S : ι → submodule R M) (H : directed (≤) S) {x} :
10271023
x ∈ supr S ↔ ∃ i, x ∈ S i :=

src/ring_theory/subring.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,9 @@ def map {R : Type u} {S : Type v} [ring R] [ring S]
355355
y ∈ s.map f ↔ ∃ x ∈ s, f x = y :=
356356
set.mem_image_iff_bex
357357

358+
@[simp] lemma map_id : s.map (ring_hom.id R) = s :=
359+
set_like.coe_injective $ set.image_id _
360+
358361
lemma map_map (g : S →+* T) (f : R →+* S) : (s.map f).map g = s.map (g.comp f) :=
359362
set_like.coe_injective $ set.image_image _ _ _
360363

src/ring_theory/subsemiring.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,9 @@ def map (f : R →+* S) (s : subsemiring R) : subsemiring S :=
266266
y ∈ s.map f ↔ ∃ x ∈ s, f x = y :=
267267
set.mem_image_iff_bex
268268

269+
@[simp] lemma map_id : s.map (ring_hom.id R) = s :=
270+
set_like.coe_injective $ set.image_id _
271+
269272
lemma map_map (g : S →+* T) (f : R →+* S) : (s.map f).map g = s.map (g.comp f) :=
270273
set_like.coe_injective $ set.image_image _ _ _
271274

0 commit comments

Comments
 (0)