Skip to content

Commit 8295e18

Browse files
tb65536ReemMelamed
authored andcommitted
feat(RingTheory/RamificationInertia/Inertia): inertia degree is invariant under a group action (leanprover-community#40124)
This PR proves that inertia degree is invariant under a group action. We already have this for the old definition `inertiaDeg`, but we will need this new version for `inertiaDeg'` for the upcoming refactor. Co-authored-by: tb65536 <thomas.l.browning@gmail.com>
1 parent 9daf28d commit 8295e18

2 files changed

Lines changed: 43 additions & 6 deletions

File tree

Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,34 @@ lemma Ideal.surjectiveOnStalks_residueField (I : Ideal R) [I.IsPrime] :
158158
(RingHom.surjectiveOnStalks_of_surjective Ideal.Quotient.mk_surjective).comp
159159
(RingHom.surjectiveOnStalks_of_isLocalization I.primeCompl _)
160160

161-
instance (p : Ideal R) [p.IsPrime] (q : Ideal A) [q.IsPrime] [q.LiesOver p]
162-
[Algebra (Localization.AtPrime p) (Localization.AtPrime q)]
163-
[Localization.AtPrime.IsLiesOverAlgebra p q] :
164-
IsLocalHom (algebraMap (Localization.AtPrime p) (Localization.AtPrime q)) := by
165-
rw [Localization.AtPrime.IsLiesOverAlgebra.algebraMap_eq]
166-
exact Localization.isLocalHom_localRingHom _ _ _ (Ideal.over_def _ _)
161+
section
162+
163+
open Localization AtPrime
164+
165+
variable (J : Ideal A) (K : Ideal B) [J.IsPrime] [K.IsPrime]
166+
[J.LiesOver I] [Algebra (Localization.AtPrime I) (Localization.AtPrime J)] [IsLiesOverAlgebra I J]
167+
[K.LiesOver I] [Algebra (Localization.AtPrime I) (Localization.AtPrime K)] [IsLiesOverAlgebra I K]
168+
169+
instance : IsLocalHom (algebraMap (Localization.AtPrime I) (Localization.AtPrime J)) := by
170+
rw [IsLiesOverAlgebra.algebraMap_eq]
171+
exact isLocalHom_localRingHom _ _ _ (J.over_def I)
172+
173+
/-- An isomorphism of rings induces an isomorphism of residue fields. -/
174+
noncomputable def Ideal.residueFieldRingEquiv (f : A ≃+* B) (h : J = K.comap f) :
175+
J.ResidueField ≃+* K.ResidueField :=
176+
IsLocalRing.ResidueField.mapEquiv (localRingEquiv J K f h)
177+
178+
/-- An isomorphism of rings induces an isomorphism of residue fields. -/
179+
noncomputable abbrev Ideal.residueFieldAlgEquiv (f : A ≃ₐ[R] B) (h : J = K.comap f) :
180+
J.ResidueField ≃ₐ[R] K.ResidueField :=
181+
IsLocalRing.ResidueField.mapAlgEquiv (localAlgEquiv J K f h)
182+
183+
/-- An isomorphism of rings induces an isomorphism of residue fields. -/
184+
noncomputable abbrev Ideal.residueFieldAlgEquiv' (f : A ≃ₐ[R] B) (h : J = K.comap f) :
185+
J.ResidueField ≃ₐ[I.ResidueField] K.ResidueField :=
186+
IsLocalRing.ResidueField.mapAlgEquiv' (localAlgEquiv' I J K f h)
187+
188+
end
167189

168190
instance (p : Ideal R) [p.IsPrime] : Algebra.EssFiniteType R p.ResidueField :=
169191
.comp _ (Localization.AtPrime p) _

Mathlib/RingTheory/RamificationInertia/Inertia.lean

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,21 @@ theorem inertiaDeg'_tower [r.LiesOver q] :
105105
apply Module.finrank_mul_finrank
106106
· rw [inertiaDeg'_of_not_isPrime r R hr, inertiaDeg'_of_not_isPrime r S hr, mul_zero]
107107

108+
variable (R) in
109+
open Pointwise in
110+
@[simp]
111+
theorem inertiaDeg'_smul {G : Type*} [Group G] [MulSemiringAction G S] [SMulCommClass G R S]
112+
(g : G) : (g • q).inertiaDeg' R = q.inertiaDeg' R := by
113+
by_cases hq : q.IsPrime; swap
114+
· rw [inertiaDeg'_of_not_isPrime, inertiaDeg'_of_not_isPrime] <;> simpa
115+
· let p := q.under R
116+
let f₀ := MulSemiringAction.toAlgAut G R S g
117+
let := Localization.AtPrime.algebraOfLiesOver p q
118+
let := Localization.AtPrime.algebraOfLiesOver p (g • q)
119+
rw [inertiaDeg'_eq p q, inertiaDeg'_eq p (g • q)]
120+
let e₂ := Ideal.residueFieldAlgEquiv' p (g • q) q f₀.symm (comap_symm f₀.toRingEquiv).symm
121+
exact e₂.toLinearEquiv.finrank_eq
122+
108123
end
109124

110125
end Ideal

0 commit comments

Comments
 (0)