Skip to content

Commit 702b830

Browse files
Ruben-VandeVeldematthewjasperxroblot
committed
feat: Ideal.ramificationIdx_mul_inertiaDeg_of_isLocalRing (#29729)
We add the special case `Ideal.ramificationIdx_mul_inertiaDeg_of_isLocalRing` of `Ideal.sum_ramification_inertia` in the local (DVR) case: the product of the ramification index and the inertia degree equals the degree of the field extension. Also make the argument `p` implicit in `Ideal.sum_ramification_inertia`. Co-authored-by: Matthew Jasper <mjjasper1@gmail.com> Co-authored-by: Xavier Roblot <46200072+xroblot@users.noreply.github.com>
1 parent 0c1a3a6 commit 702b830

File tree

4 files changed

+29
-2
lines changed

4 files changed

+29
-2
lines changed

Mathlib/NumberTheory/RamificationInertia/Basic.lean

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,7 @@ is maximal. -/
872872
theorem sum_ramification_inertia (K L : Type*) [Field K] [Field L] [IsDedekindDomain R]
873873
[Algebra R K] [IsFractionRing R K] [Algebra S L] [IsFractionRing S L] [Algebra K L]
874874
[Algebra R L] [IsScalarTower R S L] [IsScalarTower R K L] [Module.Finite R S]
875-
[p.IsMaximal] (hp0 : p ≠ ⊥) :
875+
{p : Ideal R} [p.IsMaximal] (hp0 : p ≠ ⊥) :
876876
∑ P ∈ primesOverFinset p S,
877877
ramificationIdx (algebraMap R S) p P * inertiaDeg p P = finrank K L := by
878878
set e := ramificationIdx (algebraMap R S) p
@@ -894,6 +894,18 @@ theorem sum_ramification_inertia (K L : Type*) [Field K] [Field L] [IsDedekindDo
894894
algebraMap_injective_of_field_isFractionRing R S K L, le_bot_iff]
895895
· exact finrank_quotient_map p K L
896896

897+
/-- `Ideal.sum_ramification_inertia`, in the local (DVR) case. -/
898+
lemma ramificationIdx_mul_inertiaDeg_of_isLocalRing
899+
(K L : Type*) [Field K] [Field L] [IsLocalRing S]
900+
[IsDedekindDomain R] [Algebra R K] [IsFractionRing R K] [Algebra S L]
901+
[IsFractionRing S L] [Algebra K L] [Algebra R L] [IsScalarTower R S L]
902+
[IsScalarTower R K L] [Module.Finite R S] {p : Ideal R} [p.IsMaximal] (hp0 : p ≠ ⊥) :
903+
ramificationIdx (algebraMap R S) p (IsLocalRing.maximalIdeal S) *
904+
p.inertiaDeg (IsLocalRing.maximalIdeal S) = Module.finrank K L := by
905+
have := FaithfulSMul.of_field_isFractionRing R S K L
906+
simp_rw [← sum_ramification_inertia S K L hp0, IsLocalRing.primesOverFinset_eq S hp0,
907+
Finset.sum_singleton]
908+
897909
end FactorsMap
898910

899911
section tower

Mathlib/NumberTheory/RamificationInertia/Galois.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ theorem ncard_primesOver_mul_ramificationIdxIn_mul_inertiaDegIn [IsGalois K L] :
198198
(primesOver p B).ncard * (ramificationIdxIn p B * inertiaDegIn p B) = Module.finrank K L := by
199199
have : FaithfulSMul A B := FaithfulSMul.of_field_isFractionRing A B K L
200200
rw [← smul_eq_mul, ← coe_primesOverFinset hpb B, Set.ncard_coe_finset, ← Finset.sum_const]
201-
rw [← sum_ramification_inertia B p K L hpb]
201+
rw [← sum_ramification_inertia B K L hpb]
202202
apply Finset.sum_congr rfl
203203
intro P hp
204204
rw [← Finset.mem_coe, coe_primesOverFinset hpb B] at hp

Mathlib/RingTheory/DedekindDomain/Basic.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,3 +154,12 @@ instance (priority := 100) IsPrincipalIdealRing.isDedekindDomain
154154
IsDedekindDomain A :=
155155
{ PrincipalIdealRing.isNoetherianRing, Ring.DimensionLEOne.principal_ideal_ring A,
156156
UniqueFactorizationMonoid.instIsIntegrallyClosed with }
157+
158+
variable {R} in
159+
theorem IsLocalRing.primesOver_eq [IsLocalRing A] [IsDedekindDomain A] [Algebra R A]
160+
[FaithfulSMul R A] [Module.Finite R A] {p : Ideal R} [p.IsMaximal] (hp0 : p ≠ ⊥) :
161+
Ideal.primesOver p A = {IsLocalRing.maximalIdeal A} := by
162+
refine Set.eq_singleton_iff_nonempty_unique_mem.mpr ⟨?_, fun P hP ↦ ?_⟩
163+
· obtain ⟨w', hmax, hover⟩ := Ideal.exists_ideal_liesOver_maximal_of_isIntegral p A
164+
exact ⟨w', hmax.isPrime, hover⟩
165+
· exact IsLocalRing.eq_maximalIdeal <| hP.1.isMaximal (Ideal.ne_bot_of_mem_primesOver hp0 hP)

Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,6 +1011,12 @@ theorem coe_primesOverFinset : primesOverFinset p B = primesOver p B := by
10111011
(fun ⟨hPp, h⟩ => ⟨hPp, ⟨hpm.eq_of_le (comap_ne_top _ hPp.ne_top) (le_comap_of_map_le h)⟩⟩)
10121012
(fun ⟨hPp, h⟩ => ⟨hPp, map_le_of_le_comap h.1.le⟩)
10131013

1014+
variable {R} (A) in
1015+
theorem IsLocalRing.primesOverFinset_eq [IsLocalRing A] [IsDedekindDomain A]
1016+
[Algebra R A] [FaithfulSMul R A] [Module.Finite R A] {p : Ideal R} [p.IsMaximal] (hp0 : p ≠ ⊥) :
1017+
primesOverFinset p A = {IsLocalRing.maximalIdeal A} := by
1018+
rw [← Finset.coe_eq_singleton, coe_primesOverFinset hp0, IsLocalRing.primesOver_eq A hp0]
1019+
10141020
namespace IsDedekindDomain.HeightOneSpectrum
10151021

10161022
/--

0 commit comments

Comments
 (0)