|
8 | 8 | public import Mathlib.NumberTheory.RamificationInertia.Ramification |
9 | 9 | public import Mathlib.RingTheory.Flat.Localization |
10 | 10 | public import Mathlib.RingTheory.LocalRing.Length |
| 11 | +public import Mathlib.RingTheory.LocalRing.ResidueField.Instances |
| 12 | +public import Mathlib.RingTheory.Unramified.LocalRing |
11 | 13 |
|
12 | 14 | /-! |
13 | 15 | # Ramification index |
@@ -60,6 +62,34 @@ theorem ramificationIdx'_def [q.IsPrime] : |
60 | 62 | theorem ramificationIdx'_of_not_isPrime (hq : ¬ q.IsPrime) : q.ramificationIdx' R = 0 := |
61 | 63 | dif_neg hq |
62 | 64 |
|
| 65 | +theorem ramificationIdx'_eq_one [q.IsPrime] [Algebra.EssFiniteType R S] |
| 66 | + [Algebra.IsUnramifiedAt R q] : q.ramificationIdx' R = 1 := by |
| 67 | + let p := q.under R |
| 68 | + let Rp := Localization.AtPrime p |
| 69 | + let Sq := Localization.AtPrime q |
| 70 | + let : Algebra Rp Sq := Localization.AtPrime.algebraOfLiesOver p q |
| 71 | + have : Algebra.EssFiniteType Rp Sq := Algebra.EssFiniteType.of_comp R Rp Sq |
| 72 | + rw [ramificationIdx'_def, ENat.toNat_eq_iff_eq_coe, Nat.cast_one, Module.length_eq_one_iff, |
| 73 | + isSimpleModule_iff_isCoatom, ← Ideal.isMaximal_def, IsLocalRing.isMaximal_iff, |
| 74 | + IsScalarTower.algebraMap_eq R Rp Sq, ← map_map, Localization.AtPrime.map_eq_maximalIdeal] |
| 75 | + exact Algebra.FormallyUnramified.map_maximalIdeal |
| 76 | + |
| 77 | +theorem ramificationIdx'_eq_one_iff [q.IsPrime] [Algebra.EssFiniteType R S] |
| 78 | + [Algebra.IsIntegral R S] [PerfectField (q.under R).ResidueField] : |
| 79 | + q.ramificationIdx' R = 1 ↔ Algebra.IsUnramifiedAt R q := by |
| 80 | + refine ⟨fun h ↦ ?_, fun _ ↦ ramificationIdx'_eq_one q R⟩ |
| 81 | + rw [ramificationIdx'_def, ENat.toNat_eq_iff_eq_coe, Nat.cast_one, Module.length_eq_one_iff, |
| 82 | + isSimpleModule_iff_isCoatom, ← Ideal.isMaximal_def, IsLocalRing.isMaximal_iff] at h |
| 83 | + let p := q.under R |
| 84 | + let Rp := Localization.AtPrime p |
| 85 | + let Sq := Localization.AtPrime q |
| 86 | + let := Localization.AtPrime.algebraOfLiesOver p q |
| 87 | + have := Algebra.EssFiniteType.of_comp R Rp Sq |
| 88 | + suffices Algebra.FormallyUnramified Rp Sq from Algebra.FormallyUnramified.comp R Rp Sq |
| 89 | + rw [Algebra.FormallyUnramified.iff_map_maximalIdeal_eq, |
| 90 | + ← Localization.AtPrime.map_eq_maximalIdeal, map_map, ← IsScalarTower.algebraMap_eq] |
| 91 | + exact ⟨Algebra.IsAlgebraic.isSeparable_of_perfectField, h⟩ |
| 92 | + |
63 | 93 | end |
64 | 94 |
|
65 | 95 | section |
|
0 commit comments