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

Commit 7150c90

Browse files
refactor(ring_theory/localization): Golf two proofs (#7520)
Golfing two proofs and changing their order.
1 parent ea0043c commit 7150c90

File tree

1 file changed

+18
-32
lines changed

1 file changed

+18
-32
lines changed

src/ring_theory/localization.lean

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,43 +1203,29 @@ simpa only [@local_ring.mem_maximal_ideal (f.codomain), mem_nonunits_iff, not_no
12031203
end localization_map
12041204

12051205
namespace localization
1206+
open localization_map
12061207

12071208
local attribute [instance] classical.prop_decidable
12081209

1209-
/-- The image of `P` in the localization at `P.prime_compl` is a maximal ideal, and in particular
1210-
it is the unique maximal ideal given by the local ring structure `at_prime.local_ring` -/
1211-
lemma at_prime.map_eq_maximal_ideal {P : ideal R} [hP : ideal.is_prime P] :
1212-
ideal.map (localization.of P.prime_compl).to_map P =
1213-
(local_ring.maximal_ideal (localization P.prime_compl)) :=
1214-
begin
1215-
let f := localization.of P.prime_compl,
1216-
ext x,
1217-
split; simp only [local_ring.mem_maximal_ideal, mem_nonunits_iff]; intro hx,
1218-
{ exact λ h, (localization_map.is_prime_of_is_prime_disjoint f P hP
1219-
disjoint_compl_left).ne_top (ideal.eq_top_of_is_unit_mem _ hx h) },
1220-
{ obtain ⟨⟨a, b⟩, hab⟩ := localization_map.surj f x,
1221-
contrapose! hx,
1222-
rw is_unit_iff_exists_inv,
1223-
rw localization_map.mem_map_to_map_iff at hx,
1224-
obtain ⟨a', ha'⟩ := is_unit_iff_exists_inv.1
1225-
(localization_map.map_units f ⟨a, λ ha, hx ⟨⟨⟨a, ha⟩, b⟩, hab⟩⟩),
1226-
exact ⟨f.to_map b * a', by rwa [← mul_assoc, hab]⟩ }
1227-
end
1210+
variables (I : ideal R) [hI : I.is_prime]
1211+
include hI
12281212

1229-
/-- The unique maximal ideal of the localization at `P.prime_compl` lies over the ideal `P`. -/
1230-
lemma at_prime.comap_maximal_ideal {P : ideal R} [ideal.is_prime P] :
1231-
ideal.comap (localization.of P.prime_compl).to_map
1232-
(local_ring.maximal_ideal (localization P.prime_compl)) = P :=
1213+
variables {I}
1214+
/-- The unique maximal ideal of the localization at `I.prime_compl` lies over the ideal `I`. -/
1215+
lemma at_prime.comap_maximal_ideal :
1216+
ideal.comap (localization.of I.prime_compl).to_map
1217+
(local_ring.maximal_ideal (localization I.prime_compl)) = I :=
1218+
ideal.ext $ λ x, by
1219+
simpa only [ideal.mem_comap] using at_prime.to_map_mem_maximal_iff I _ x
1220+
1221+
/-- The image of `I` in the localization at `I.prime_compl` is a maximal ideal, and in particular
1222+
it is the unique maximal ideal given by the local ring structure `at_prime.local_ring` -/
1223+
lemma at_prime.map_eq_maximal_ideal :
1224+
ideal.map (localization.of I.prime_compl).to_map I =
1225+
(local_ring.maximal_ideal (localization I.prime_compl)) :=
12331226
begin
1234-
let Pₚ := local_ring.maximal_ideal (localization P.prime_compl),
1235-
refine le_antisymm (λ x hx, _)
1236-
(le_trans ideal.le_comap_map (ideal.comap_mono (le_of_eq at_prime.map_eq_maximal_ideal))),
1237-
by_cases h0 : x = 0,
1238-
{ exact h0.symm ▸ P.zero_mem },
1239-
{ have : Pₚ.is_prime := ideal.is_maximal.is_prime (local_ring.maximal_ideal.is_maximal _),
1240-
rw localization_map.is_prime_iff_is_prime_disjoint (localization.of P.prime_compl) at this,
1241-
contrapose! h0 with hx',
1242-
simpa using this.2 ⟨hx', hx⟩ }
1227+
convert congr_arg (ideal.map (localization.of _).to_map) at_prime.comap_maximal_ideal.symm,
1228+
rw map_comap,
12431229
end
12441230

12451231
end localization

0 commit comments

Comments
 (0)