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

Commit 5cfb8db

Browse files
committed
refactor(ring_theory/jacobson_ideal): generalize lemmas to non-commutative rings (#13865)
The main change here is that the order of multiplication has been adjusted slightly in `mem_jacobson_iff`and `exists_mul_sub_mem_of_sub_one_mem_jacobson`. In the commutative case this doesn't matter anyway. All the other changes are just moving lemmas between sections, the statements of no lemmas other than those two have been changed. No lemmas have been added or removed. The lemmas about `is_unit` and quotients don't generalize as easily, so I've not attempted to touch those; that would require some mathematical insight, which is out of scope for this PR!
1 parent 16157f2 commit 5cfb8db

File tree

2 files changed

+57
-46
lines changed

2 files changed

+57
-46
lines changed

src/ring_theory/jacobson_ideal.lean

Lines changed: 55 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@ Jacobson, Jacobson radical, Local Ideal
4141
universes u v
4242

4343
namespace ideal
44-
variables {R : Type u} [comm_ring R] {I : ideal R}
45-
variables {S : Type v} [comm_ring S]
44+
variables {R : Type u} {S : Type v}
4645
open_locale polynomial
4746

4847
section jacobson
4948

50-
/-- The Jacobson radical of `I` is the infimum of all maximal ideals containing `I`. -/
49+
section ring
50+
variables [ring R] [ring S] {I : ideal R}
51+
52+
/-- The Jacobson radical of `I` is the infimum of all maximal (left) ideals containing `I`. -/
5153
def jacobson (I : ideal R) : ideal R :=
5254
Inf {J : ideal R | I ≤ J ∧ is_maximal J}
5355

@@ -57,12 +59,6 @@ lemma le_jacobson : I ≤ jacobson I :=
5759
@[simp] lemma jacobson_idem : jacobson (jacobson I) = jacobson I :=
5860
le_antisymm (Inf_le_Inf (λ J hJ, ⟨Inf_le hJ, hJ.2⟩)) le_jacobson
5961

60-
lemma radical_le_jacobson : radical I ≤ jacobson I :=
61-
le_Inf (λ J hJ, (radical_eq_Inf I).symm ▸ Inf_le ⟨hJ.left, is_maximal.is_prime hJ.right⟩)
62-
63-
lemma eq_radical_of_eq_jacobson : jacobson I = I → radical I = I :=
64-
λ h, le_antisymm (le_trans radical_le_jacobson (le_of_eq h)) le_radical
65-
6662
@[simp] lemma jacobson_top : jacobson (⊤ : ideal R) = ⊤ :=
6763
eq_top_iff.2 le_jacobson
6864

@@ -84,42 +80,31 @@ instance jacobson.is_maximal [H : is_maximal I] : is_maximal (jacobson I) :=
8480
⟨⟨λ htop, H.1.1 (jacobson_eq_top_iff.1 htop),
8581
λ J hJ, H.1.2 _ (lt_of_le_of_lt le_jacobson hJ)⟩⟩
8682

87-
theorem mem_jacobson_iff {x : R} : x ∈ jacobson I ↔ ∀ y, ∃ z, x * y * z + z - 1 ∈ I :=
83+
theorem mem_jacobson_iff {x : R} : x ∈ jacobson I ↔ ∀ y, ∃ z, z * y * x + z - 1 ∈ I :=
8884
⟨λ hx y, classical.by_cases
89-
(assume hxy : I ⊔ span {x * y + 1} = ⊤,
85+
(assume hxy : I ⊔ span {y * x + 1} = ⊤,
9086
let ⟨p, hpi, q, hq, hpq⟩ := submodule.mem_sup.1 ((eq_top_iff_one _).1 hxy) in
91-
let ⟨r, hr⟩ := mem_span_singleton.1 hq in
92-
⟨r, by rw [← one_mul r, ← mul_assoc, ← add_mul, mul_one, ← hr, ← hpq, ← neg_sub,
93-
add_sub_cancel]; exact I.neg_mem hpi⟩)
94-
(assume hxy : I ⊔ span {x * y + 1} ≠ ⊤,
87+
let ⟨r, hr⟩ := mem_span_singleton'.1 hq in
88+
⟨r, by rw [mul_assoc, ←mul_add_one, hr, ← hpq, ← neg_sub, add_sub_cancel]; exact I.neg_mem hpi⟩)
89+
(assume hxy : I ⊔ span {y * x + 1} ≠ ⊤,
9590
let ⟨M, hm1, hm2⟩ := exists_le_maximal _ hxy in
9691
suffices x ∉ M, from (this $ mem_Inf.1 hx ⟨le_trans le_sup_left hm2, hm1⟩).elim,
97-
λ hxm, hm1.1.1 $ (eq_top_iff_one _).2 $ add_sub_cancel' (x * y) 1 ▸ M.sub_mem
98-
(le_sup_right.trans hm2 $ mem_span_singleton.2 dvd_rfl)
99-
(M.mul_mem_right _ hxm)),
92+
λ hxm, hm1.1.1 $ (eq_top_iff_one _).2 $ add_sub_cancel' (y * x) 1 ▸ M.sub_mem
93+
(le_sup_right.trans hm2 $ subset_span rfl)
94+
(M.mul_mem_left _ hxm)),
10095
λ hx, mem_Inf.2 $ λ M ⟨him, hm⟩, classical.by_contradiction $ λ hxm,
101-
let ⟨y, hy⟩ := hm.exists_inv hxm, ⟨z, hz⟩ := hx (-y) in
102-
hm.1.1 $ (eq_top_iff_one _).2 $ sub_sub_cancel (x * -y * z + z) 1 ▸ M.sub_mem
103-
(by { rw [← one_mul z, ← mul_assoc, ← add_mul, mul_one, mul_neg, neg_add_eq_sub,
104-
← neg_sub, neg_mul, neg_mul_eq_mul_neg, mul_comm x y, mul_comm _ (- z)],
105-
rcases hy with ⟨i, hi, df⟩,
106-
rw [← (sub_eq_iff_eq_add.mpr df.symm), sub_sub, add_comm, ← sub_sub, sub_self, zero_sub],
107-
refine M.mul_mem_left (-z) (neg_mem_iff.mpr hi) }) (him hz)⟩
96+
let ⟨y, i, hi, df⟩ := hm.exists_inv hxm, ⟨z, hz⟩ := hx (-y) in
97+
hm.1.1 $ (eq_top_iff_one _).2 $ sub_sub_cancel (z * -y * x + z) 1 ▸ M.sub_mem
98+
(by { rw [mul_assoc, ←mul_add_one, neg_mul, ← (sub_eq_iff_eq_add.mpr df.symm), neg_sub,
99+
sub_add_cancel],
100+
exact M.mul_mem_left _ hi }) (him hz)⟩
108101

109102
lemma exists_mul_sub_mem_of_sub_one_mem_jacobson {I : ideal R} (r : R)
110-
(h : r - 1 ∈ jacobson I) : ∃ s, r * s - 1 ∈ I :=
103+
(h : r - 1 ∈ jacobson I) : ∃ s, s * r - 1 ∈ I :=
111104
begin
112105
cases mem_jacobson_iff.1 h 1 with s hs,
113106
use s,
114-
simpa [sub_mul] using hs
115-
end
116-
117-
lemma is_unit_of_sub_one_mem_jacobson_bot (r : R)
118-
(h : r - 1 ∈ jacobson (⊥ : ideal R)) : is_unit r :=
119-
begin
120-
cases exists_mul_sub_mem_of_sub_one_mem_jacobson r h with s hs,
121-
rw [mem_bot, sub_eq_zero] at hs,
122-
exact is_unit_of_mul_eq_one _ _ hs
107+
simpa [mul_sub] using hs
123108
end
124109

125110
/-- An ideal equals its Jacobson radical iff it is the intersection of a set of maximal ideals.
@@ -209,9 +194,36 @@ begin
209194
refine Inf_le ⟨comap_mono hJ.left, comap_is_maximal_of_surjective _ hf⟩ }
210195
end
211196

197+
@[mono] lemma jacobson_mono {I J : ideal R} : I ≤ J → I.jacobson ≤ J.jacobson :=
198+
begin
199+
intros h x hx,
200+
erw mem_Inf at ⊢ hx,
201+
exact λ K ⟨hK, hK_max⟩, hx ⟨trans h hK, hK_max⟩
202+
end
203+
204+
end ring
205+
206+
section comm_ring
207+
variables [comm_ring R] [comm_ring S] {I : ideal R}
208+
209+
lemma radical_le_jacobson : radical I ≤ jacobson I :=
210+
le_Inf (λ J hJ, (radical_eq_Inf I).symm ▸ Inf_le ⟨hJ.left, is_maximal.is_prime hJ.right⟩)
211+
212+
lemma eq_radical_of_eq_jacobson : jacobson I = I → radical I = I :=
213+
λ h, le_antisymm (le_trans radical_le_jacobson (le_of_eq h)) le_radical
214+
215+
lemma is_unit_of_sub_one_mem_jacobson_bot (r : R)
216+
(h : r - 1 ∈ jacobson (⊥ : ideal R)) : is_unit r :=
217+
begin
218+
cases exists_mul_sub_mem_of_sub_one_mem_jacobson r h with s hs,
219+
rw [mem_bot, sub_eq_zero, mul_comm] at hs,
220+
exact is_unit_of_mul_eq_one _ _ hs
221+
end
222+
212223
lemma mem_jacobson_bot {x : R} : x ∈ jacobson (⊥ : ideal R) ↔ ∀ y, is_unit (x * y + 1) :=
213224
⟨λ hx y, let ⟨z, hz⟩ := (mem_jacobson_iff.1 hx) y in
214-
is_unit_iff_exists_inv.2 ⟨z, by rwa [add_mul, one_mul, ← sub_eq_zero]⟩,
225+
is_unit_iff_exists_inv.2 ⟨z, by rwa [add_mul, one_mul, ← sub_eq_zero, mul_right_comm,
226+
mul_comm _ z, mul_right_comm]⟩,
215227
λ h, mem_jacobson_iff.mpr (λ y, (let ⟨b, hb⟩ := is_unit_iff_exists_inv.1 (h y) in
216228
⟨b, (submodule.mem_bot R).2 (hb ▸ (by ring))⟩))⟩
217229

@@ -250,23 +262,20 @@ begin
250262
simpa using this }
251263
end
252264

253-
@[mono] lemma jacobson_mono {I J : ideal R} : I ≤ J → I.jacobson ≤ J.jacobson :=
254-
begin
255-
intros h x hx,
256-
erw mem_Inf at ⊢ hx,
257-
exact λ K ⟨hK, hK_max⟩, hx ⟨trans h hK, hK_max⟩
258-
end
259-
260265
lemma jacobson_radical_eq_jacobson :
261266
I.radical.jacobson = I.jacobson :=
262267
le_antisymm (le_trans (le_of_eq (congr_arg jacobson (radical_eq_Inf I)))
263268
(Inf_le_Inf (λ J hJ, ⟨Inf_le ⟨hJ.1, hJ.2.is_prime⟩, hJ.2⟩))) (jacobson_mono le_radical)
264269

270+
end comm_ring
271+
265272
end jacobson
266273

267274
section polynomial
268275
open polynomial
269276

277+
variables [comm_ring R]
278+
270279
lemma jacobson_bot_polynomial_le_Inf_map_maximal :
271280
jacobson (⊥ : ideal R[X]) ≤ Inf (map C '' {J : ideal R | J.is_maximal}) :=
272281
begin
@@ -297,6 +306,8 @@ end polynomial
297306

298307
section is_local
299308

309+
variables [comm_ring R]
310+
300311
/-- An ideal `I` is local iff its Jacobson radical is maximal. -/
301312
class is_local (I : ideal R) : Prop := (out : is_maximal (jacobson I))
302313

@@ -327,7 +338,7 @@ classical.by_cases
327338

328339
end is_local
329340

330-
theorem is_primary_of_is_maximal_radical {I : ideal R} (hi : is_maximal (radical I)) :
341+
theorem is_primary_of_is_maximal_radical [comm_ring R] {I : ideal R} (hi : is_maximal (radical I)) :
331342
is_primary I :=
332343
have radical I = jacobson I,
333344
from le_antisymm (le_Inf $ λ M ⟨him, hm⟩, hm.is_prime.radical_le_iff.2 him)

src/ring_theory/nakayama.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ begin
5252
intros n hn,
5353
cases submodule.exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul I N hN hIN with r hr,
5454
cases exists_mul_sub_mem_of_sub_one_mem_jacobson r (hIjac hr.1) with s hs,
55-
have : n = (-(r * s - 1) • n),
56-
{ rw [neg_sub, sub_smul, mul_comm, mul_smul, hr.2 n hn, one_smul, smul_zero, sub_zero] },
55+
have : n = (-(s * r - 1) • n),
56+
{ rw [neg_sub, sub_smul, mul_smul, hr.2 n hn, one_smul, smul_zero, sub_zero] },
5757
rw this,
5858
exact submodule.smul_mem_smul (submodule.neg_mem _ hs) hn
5959
end

0 commit comments

Comments
 (0)