Skip to content

Commit ed319c1

Browse files
committed
feat(RingTheory/Localization/Ideal): map distributes over inf (leanprover-community#33804)
This PR proves that mapping ideals to the localization distributes over finite intersections, following the design of the analogous statements for `Ideal.radical`. Co-authored-by: tb65536 <thomas.l.browning@gmail.com>
1 parent 86d665a commit ed319c1

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

Mathlib/RingTheory/Localization/Ideal.lean

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,30 @@ lemma map_algebraMap_ne_top_iff_disjoint (I : Ideal R) :
9898
IsLocalization.algebraMap_mem_map_algebraMap_iff M]
9999
simp [Set.disjoint_left]
100100

101+
include M in
102+
protected theorem map_inf (I J : Ideal R) :
103+
(I ⊓ J).map (algebraMap R S) = I.map (algebraMap R S) ⊓ J.map (algebraMap R S) := by
104+
refine le_antisymm (Ideal.map_inf_le (algebraMap R S)) fun x hx ↦ ?_
105+
simp only [Ideal.mem_inf, IsLocalization.mem_map_algebraMap_iff M, Prod.exists] at hx ⊢
106+
obtain ⟨⟨⟨i, hi⟩, mi, hi'⟩, ⟨j, hj⟩, mj, hj'⟩ := hx
107+
simp only [← IsLocalization.eq_mk'_iff_mul_eq] at hi' hj'
108+
obtain ⟨m, hm⟩ := IsLocalization.eq.mp (hi'.symm.trans hj')
109+
rw [← mul_assoc, ← mul_assoc, mul_comm, ← mul_comm (j : R)] at hm
110+
refine ⟨⟨i * (m * mj : M), I.mul_mem_right _ hi, hm ▸ J.mul_mem_right _ hj⟩, mi * (m * mj), ?_⟩
111+
rwa [← IsLocalization.eq_mk'_iff_mul_eq, Subtype.coe_mk, IsLocalization.mk'_cancel]
112+
113+
/-- `IsLocalization.map_inf` as an `FrameHom`. -/
114+
def mapFrameHom : FrameHom (Ideal R) (Ideal S) where
115+
toFun := Ideal.map (algebraMap R S)
116+
map_inf' := IsLocalization.map_inf M S
117+
map_top' := Ideal.map_top (algebraMap R S)
118+
map_sSup' _ := (Ideal.gc_map_comap (algebraMap R S)).l_sSup.trans sSup_image.symm
119+
120+
@[simp]
121+
lemma mapFrameHom_apply (I : Ideal R) :
122+
IsLocalization.mapFrameHom M S I = I.map (algebraMap R S) :=
123+
rfl
124+
101125
include M in
102126
theorem map_comap (J : Ideal S) :
103127
Ideal.map (algebraMap R S) (Ideal.comap (algebraMap R S) J) = J :=

0 commit comments

Comments
 (0)