77
88public import Mathlib.NumberTheory.KummerDedekind
99public import Mathlib.NumberTheory.NumberField.Basic
10- public import Mathlib.NumberTheory .RamificationInertia.Basic
10+ public import Mathlib.RingTheory .RamificationInertia.Basic
1111public import Mathlib.RingTheory.Ideal.Int
1212
1313/-!
@@ -209,20 +209,24 @@ The residual degree of the ideal corresponding to the class of `Q ∈ ℤ[X]` mo
209209-/
210210theorem inertiaDeg_primesOverSpanEquivMonicFactorsMod_symm_apply (hp : ¬ p ∣ exponent θ)
211211 {Q : ℤ[X]} (hQ : Q.map (Int.castRingHom (ZMod p)) ∈ monicFactorsMod θ p) :
212- inertiaDeg (span {(p : ℤ)}) ((primesOverSpanEquivMonicFactorsMod hp).symm
213- ⟨Q.map (Int.castRingHom (ZMod p)), hQ⟩ : Ideal (𝓞 K)) =
212+ inertiaDeg' ((primesOverSpanEquivMonicFactorsMod hp).symm
213+ ⟨Q.map (Int.castRingHom (ZMod p)), hQ⟩ : Ideal (𝓞 K)) ℤ =
214214 natDegree (Q.map (Int.castRingHom (ZMod p))) := by
215215 -- This is needed for `inertiaDeg_algebraMap` below to work
216+ have : (span {↑p, (aeval θ) Q}).IsMaximal := by
217+ rw [← Ideal.primesOverSpanEquivMonicFactorsMod_symm_apply_eq_span hp hQ]
218+ apply Ideal.primesOver.isMaximal
216219 have := liesOver_primesOverSpanEquivMonicFactorsMod_symm hp hQ
217- rw [primesOverSpanEquivMonicFactorsMod_symm_apply_eq_span, inertiaDeg_algebraMap,
220+ rw [primesOverSpanEquivMonicFactorsMod_symm_apply_eq_span,
221+ ← inertiaDeg_eq_inertiaDeg' (span {(p : ℤ)}), inertiaDeg_algebraMap,
218222 ← finrank_quotient_span_eq_natDegree]
219223 refine Algebra.finrank_eq_of_equiv_equiv (Int.quotientSpanNatEquivZMod p) ?_ (by ext; simp)
220224 exact (ZModXQuotSpanEquivQuotSpanPair hp hQ).symm
221225
222226theorem inertiaDeg_primesOverSpanEquivMonicFactorsMod_symm_apply' (hp : ¬ p ∣ exponent θ)
223227 {Q : (ZMod p)[X]} (hQ : Q ∈ monicFactorsMod θ p) :
224- inertiaDeg (span {(p : ℤ)})
225- ((primesOverSpanEquivMonicFactorsMod hp).symm ⟨Q, hQ⟩ : Ideal (𝓞 K)) = natDegree Q := by
228+ inertiaDeg'
229+ ((primesOverSpanEquivMonicFactorsMod hp).symm ⟨Q, hQ⟩ : Ideal (𝓞 K)) ℤ = natDegree Q := by
226230 obtain ⟨S, rfl⟩ := (map_surjective _ (ZMod.ringHom_surjective (Int.castRingHom (ZMod p)))) Q
227231 rw [inertiaDeg_primesOverSpanEquivMonicFactorsMod_symm_apply]
228232
@@ -233,12 +237,12 @@ The ramification index of the ideal corresponding to the class of `Q ∈ ℤ[X]`
233237-/
234238theorem ramificationIdx_primesOverSpanEquivMonicFactorsMod_symm_apply (hp : ¬ p ∣ exponent θ)
235239 {Q : ℤ[X]} (hQ : Q.map (Int.castRingHom (ZMod p)) ∈ monicFactorsMod θ p) :
236- ramificationIdx (span {(p : ℤ)})
240+ ramificationIdx'
237241 ((primesOverSpanEquivMonicFactorsMod hp).symm
238- ⟨Q.map (Int.castRingHom (ZMod p)), hQ⟩ : Ideal (𝓞 K)) =
242+ ⟨Q.map (Int.castRingHom (ZMod p)), hQ⟩ : Ideal (𝓞 K)) ℤ =
239243 multiplicity (Q.map (Int.castRingHom (ZMod p)))
240244 ((minpoly ℤ θ).map (Int.castRingHom (ZMod p))) := by
241- rw [ramificationIdx_eq_multiplicity ( map_ne_bot_of_ne_bot (by simp [NeZero.ne p])) inferInstance ]
245+ rw [ramificationIdx'_eq_multiplicity (span {↑p}) _ ( map_ne_bot_of_ne_bot (by simp [NeZero.ne p]))]
242246 · apply multiplicity_eq_of_emultiplicity_eq
243247 rw [← emultiplicity_map_eq (mapEquiv (Int.quotientSpanNatEquivZMod p).symm),
244248 emultiplicity_factors_map_eq_emultiplicity inferInstance (by simp [NeZero.ne p])
@@ -251,8 +255,8 @@ theorem ramificationIdx_primesOverSpanEquivMonicFactorsMod_symm_apply (hp : ¬ p
251255
252256theorem ramificationIdx_primesOverSpanEquivMonicFactorsMod_symm_apply' (hp : ¬ p ∣ exponent θ)
253257 {Q : (ZMod p)[X]} (hQ : Q ∈ monicFactorsMod θ p) :
254- ramificationIdx (span {(p : ℤ)})
255- ((primesOverSpanEquivMonicFactorsMod hp).symm ⟨Q, hQ⟩ : Ideal (𝓞 K)) =
258+ ramificationIdx'
259+ ((primesOverSpanEquivMonicFactorsMod hp).symm ⟨Q, hQ⟩ : Ideal (𝓞 K)) ℤ =
256260 multiplicity Q ((minpoly ℤ θ).map (Int.castRingHom (ZMod p))) := by
257261 obtain ⟨S, rfl⟩ := (map_surjective _ (ZMod.ringHom_surjective (Int.castRingHom (ZMod p)))) Q
258262 rw [ramificationIdx_primesOverSpanEquivMonicFactorsMod_symm_apply]
0 commit comments