Skip to content

Commit 67b4a95

Browse files
committed
refactor(RingTheory/Localization/AtPrime/Extension): switch to new definition of ramification index (leanprover-community#40781)
This PR switches `RingTheory/Localization/AtPrime/Extension.lean` over to the new definition of ramification index. Co-authored-by: tb65536 <thomas.l.browning@gmail.com>
1 parent 4b0d022 commit 67b4a95

1 file changed

Lines changed: 27 additions & 34 deletions

File tree

Mathlib/RingTheory/Localization/AtPrime/Extension.lean

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Authors: Xavier Roblot
55
-/
66
module
77

8-
public import Mathlib.NumberTheory.RamificationInertia.Basic
8+
public import Mathlib.RingTheory.RamificationInertia.Basic
99

1010
/-!
1111
# Primes in an extension of localization at prime
@@ -175,32 +175,28 @@ theorem inertiaDeg_map_eq_inertiaDeg [p.IsMaximal] [P.IsMaximal]
175175
ext x
176176
exact algebraMap_equivQuotMaximalIdeal_symm_apply p Rₚ Sₚ P x
177177

178-
theorem ramificationIdx_map_eq_ramificationIdx [IsDomain R] [IsTorsionFree R S] [IsTorsionFree R Rₚ]
179-
[IsTorsionFree S Sₚ] [IsTorsionFree Rₚ Sₚ] [IsDedekindDomain S] [IsDedekindDomain Rₚ]
180-
[IsDedekindDomain Sₚ] (hp : p ≠ ⊥) [P.IsPrime] :
181-
(maximalIdeal Rₚ).ramificationIdx (P.map (algebraMap S Sₚ)) =
182-
p.ramificationIdx P := by
183-
have h₁ : maximalIdeal Rₚ ≠ ⊥ := by
184-
rw [← map_eq_maximalIdeal p]
185-
exact map_ne_bot_of_ne_bot hp
186-
have : (P.map (algebraMap S Sₚ)).IsPrime := isPrime_map_of_liesOver S p Sₚ P
187-
by_cases hP : P = ⊥
188-
· simp_rw [hP, Ideal.map_bot, ramificationIdx_bot' hp
189-
(FaithfulSMul.algebraMap_injective _ _),
190-
ramificationIdx_bot' h₁ (FaithfulSMul.algebraMap_injective Rₚ Sₚ)]
191-
have : P.IsMaximal := IsPrime.isMaximal inferInstance hP
192-
have : (Ideal.map (algebraMap S Sₚ) P).LiesOver (maximalIdeal Rₚ) :=
193-
liesOver_map_of_liesOver p Rₚ Sₚ P
194-
have : (Ideal.map (algebraMap S Sₚ) P).LiesOver P := by
195-
rw [liesOver_iff, under_def, comap_map_eq_self_of_isMaximal _ (IsPrime.ne_top')]
196-
have h_main :=
197-
(ramificationIdx_algebra_tower' p (maximalIdeal Rₚ) (Ideal.map (algebraMap S Sₚ) P)).symm.trans
198-
<| ramificationIdx_algebra_tower' p P (Ideal.map (algebraMap S Sₚ) P)
199-
rwa [ramificationIdx_map_self_eq_one IsPrime.ne_top' (map_ne_bot_of_ne_bot hP), mul_one,
200-
← map_eq_maximalIdeal p, ramificationIdx_map_self_eq_one _ (map_ne_bot_of_ne_bot hp), one_mul,
201-
map_eq_maximalIdeal p] at h_main
202-
rw [map_eq_maximalIdeal]
203-
exact IsPrime.ne_top'
178+
include p in
179+
theorem ramificationIdx_map_eq_ramificationIdx [P.IsPrime] :
180+
(P.map (algebraMap S Sₚ)).ramificationIdx' Rₚ = P.ramificationIdx' R := by
181+
have := liesOver_map_of_liesOver p Rₚ Sₚ P
182+
have := IsLocalization.liesOver_map_of_isPrime_disjoint (algebraMapSubmonoid S p.primeCompl) Sₚ
183+
(Set.disjoint_image_left.mpr (Set.disjoint_compl_left_iff_subset.mpr hPp.over.ge))
184+
have := isPrime_map_of_liesOver S p Sₚ P
185+
rw [ramificationIdx'_eq (maximalIdeal Rₚ) (P.map (algebraMap S Sₚ)), ramificationIdx'_eq p P]
186+
let R₁ := Localization.AtPrime (P.map (algebraMap S Sₚ))
187+
let R₂ := Localization.AtPrime P
188+
let : Algebra R₂ R₁ := Localization.AtPrime.algebraOfLiesOver P (P.map (algebraMap S Sₚ))
189+
have : IsLocalization.AtPrime R₁ P := by
190+
convert isLocalization_isLocalization_atPrime_isLocalization
191+
(algebraMapSubmonoid S p.primeCompl) R₁ (P.map (algebraMap S Sₚ))
192+
rw [← Ideal.under_def, ← Ideal.over_def (P.map (algebraMap S Sₚ)) P]
193+
have h : Function.Bijective (algebraMap R₂ R₁) :=
194+
(Localization.algEquiv P.primeCompl R₁).bijective
195+
have key : p.map (algebraMap R R₂) =
196+
((maximalIdeal Rₚ).map (algebraMap Rₚ R₁)).comap (algebraMap R₂ R₁) := by
197+
rw [← IsLocalization.AtPrime.map_eq_maximalIdeal p, p.map_map, ← IsScalarTower.algebraMap_eq,
198+
IsScalarTower.algebraMap_eq R R₂ R₁, ← p.map_map, comap_map_of_bijective _ h]
199+
rw [Module.length_quotient, Module.length_quotient, key, coheight_comap_of_surjective _ h.2]
204200

205201
end IsLocalization.AtPrime
206202

@@ -250,12 +246,9 @@ theorem primesOverEquivPrimesOver_inertiagDeg_eq [p.IsMaximal] (hp : p ≠ ⊥)
250246
have : (P.1.map (algebraMap S Sₚ)).LiesOver (maximalIdeal Rₚ) := liesOver_map_of_liesOver p _ _ _
251247
exact inertiaDeg_map_eq_inertiaDeg p _ _ _
252248

253-
theorem primesOverEquivPrimesOver_ramificationIdx_eq (hp : p ≠ ⊥) [NoZeroSMulDivisors R Rₚ]
254-
[NoZeroSMulDivisors S Sₚ] [NoZeroSMulDivisors Rₚ Sₚ] [IsDedekindDomain Rₚ] [IsDedekindDomain Sₚ]
255-
(P : p.primesOver S) :
256-
(maximalIdeal Rₚ).ramificationIdx
257-
(primesOverEquivPrimesOver p Rₚ Sₚ hp P : Ideal Sₚ) =
258-
p.ramificationIdx P.val :=
259-
ramificationIdx_map_eq_ramificationIdx p _ _ _ hp
249+
theorem primesOverEquivPrimesOver_ramificationIdx_eq (hp : p ≠ ⊥) (P : p.primesOver S) :
250+
(primesOverEquivPrimesOver p Rₚ Sₚ hp P : Ideal Sₚ).ramificationIdx' Rₚ =
251+
P.val.ramificationIdx' R :=
252+
ramificationIdx_map_eq_ramificationIdx p _ _ _
260253

261254
end IsDedekindDomain

0 commit comments

Comments
 (0)