Documentation

Mathlib.NumberTheory.RamificationInertia.Basic

Ramification index and inertia degree #

Given P : Ideal S lying over p : Ideal R for the ring extension f : R →+* S (assuming P and p are prime or maximal where needed), the ramification index Ideal.ramificationIdx f p P is the multiplicity of P in map f p, and the inertia degree Ideal.inertiaDeg f p P is the degree of the field extension (S / P) : (R / p).

Main results #

The main theorem Ideal.sum_ramification_inertia states that for all coprime P lying over p, Σ P, ramification_idx f p P * inertia_deg f p P equals the degree of the field extension Frac(S) : Frac(R).

Implementation notes #

Often the above theory is set up in the case where:

Notation #

In this file, e stands for the ramification index and f for the inertia degree of P over p, leaving p and P implicit.

theorem Ideal.FinrankQuotientMap.span_eq_top {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) {K : Type u_1} [Field K] [Algebra R K] {L : Type u_2} [Field L] [Algebra S L] [IsFractionRing S L] [IsDomain R] [IsDomain S] [Algebra K L] [Module.Finite R S] [Algebra R L] [IsScalarTower R S L] [IsScalarTower R K L] [Algebra.IsAlgebraic R S] [Module.IsTorsionFree R K] (hp : p ≠ ⊤) (b : Set S) (hb' : Submodule.span R b āŠ” Submodule.restrictScalars R (map (algebraMap R S) p) = ⊤) :
Submodule.span K (⇑(algebraMap S L) '' b) = ⊤

If b mod p spans S/p as R/p-space, then b itself spans Frac(S) as K-space.

Here,

  • p is an ideal of R such that R / p is nontrivial
  • K is a field that has an embedding of R (in particular we can take K = Frac(R))
  • L is a field extension of K
  • S is the integral closure of R in L

More precisely, we avoid quotients in this statement and instead require that b ∪ pS spans S.

theorem Ideal.FinrankQuotientMap.linearIndependent_of_nontrivial {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (K : Type u_1) [Field K] [Algebra R K] {V : Type u_3} {V' : Type u_4} {V'' : Type u_5} [AddCommGroup V] [Module R V] [Module K V] [IsScalarTower R K V] [AddCommGroup V'] [Module R V'] [Module S V'] [IsScalarTower R S V'] [AddCommGroup V''] [Module R V''] [hRK : IsFractionRing R K] [IsDedekindDomain R] (hRS : RingHom.ker (algebraMap R S) ≠ ⊤) (F : V'' →ₗ[R] V) (hf : Function.Injective ⇑F) (f' : V'' →ₗ[R] V') {ι : Type u_6} {b : ι → V''} (hb' : LinearIndependent S (⇑f' ∘ b)) :
LinearIndependent K (⇑F ∘ b)

Let V be a vector space over K = Frac(R), S / R a ring extension and V' a module over S. If b, in the intersection V'' of V and V', is linear independent over S in V', then it is linear independent over R in V.

The statement we prove is actually slightly more general:

  • it suffices that the inclusion algebraMap R S : R → S is nontrivial
  • the function f' : V'' → V' doesn't need to be injective
theorem Ideal.finrank_quotient_map {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (K : Type u_1) [Field K] [Algebra R K] (L : Type u_2) [Field L] [Algebra S L] [IsFractionRing S L] [hRK : IsFractionRing R K] [IsDomain S] [IsDedekindDomain R] [Algebra K L] [Algebra R L] [IsScalarTower R K L] [IsScalarTower R S L] [hp : p.IsMaximal] [Module.Finite R S] :

If p is a maximal ideal of R, and S is the integral closure of R in L, then the dimension [S/pS : R/p] is equal to [Frac(S) : Frac(R)].

@[implicit_reducible]
noncomputable instance Ideal.Quotient.algebraQuotientPowRamificationIdx {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) :

R / p has a canonical map to S / (P ^ e), where e is the ramification index of P over p.

@[simp]
theorem Ideal.Quotient.algebraMap_quotient_pow_ramificationIdx {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) (x : R) :
(algebraMap (R ā§ø p) (S ā§ø P ^ p.ramificationIdx P)) ((mk p) x) = (mk (P ^ p.ramificationIdx P)) ((algebraMap R S) x)
@[implicit_reducible]
def Ideal.Quotient.algebraQuotientOfRamificationIdxNeZero {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [hfp : NeZero (p.ramificationIdx P)] :
Algebra (R ā§ø p) (S ā§ø P)

If P lies over p, then R / p has a canonical map to S / P.

This can't be an instance since the map f : R → S is generally not inferable.

Instances For
    @[simp]
    theorem Ideal.Quotient.algebraMap_quotient_of_ramificationIdx_neZero {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [NeZero (p.ramificationIdx P)] (x : R) :
    (algebraMap (R ā§ø p) (S ā§ø P)) ((mk p) x) = (mk P) ((algebraMap R S) x)
    noncomputable def Ideal.powQuotSuccInclusion {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) (i : ā„•) :
    ↄ(map (Quotient.mk (P ^ p.ramificationIdx P)) (P ^ (i + 1))) →ₗ[R ā§ø p] ↄ(map (Quotient.mk (P ^ p.ramificationIdx P)) (P ^ i))

    The inclusion (P^(i + 1) / P^e) āŠ‚ (P^i / P^e).

    Instances For
      @[simp]
      theorem Ideal.powQuotSuccInclusion_apply_coe {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) (i : ā„•) (x : ↄ(map (Quotient.mk (P ^ p.ramificationIdx P)) (P ^ (i + 1)))) :
      ↑((p.powQuotSuccInclusion P i) x) = ↑x
      theorem Ideal.powQuotSuccInclusion_injective {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) (i : ā„•) :
      Function.Injective ⇑(p.powQuotSuccInclusion P i)
      noncomputable def Ideal.quotientToQuotientRangePowQuotSuccAux {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) {i : ā„•} {a : S} (a_mem : a ∈ P ^ i) :
      S ā§ø P → ↄ(map (Quotient.mk (P ^ p.ramificationIdx P)) (P ^ i)) ā§ø (p.powQuotSuccInclusion P i).range

      S ā§ø P embeds into the quotient by P^(i+1) ā§ø P^e as a subspace of P^i ā§ø P^e. See quotientToQuotientRangePowQuotSucc for this as a linear map, and quotientRangePowQuotSuccInclusionEquiv for this as a linear equivalence.

      Instances For
        theorem Ideal.quotientToQuotientRangePowQuotSuccAux_mk {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) {i : ā„•} {a : S} (a_mem : a ∈ P ^ i) (x : S) :
        noncomputable def Ideal.quotientToQuotientRangePowQuotSucc {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [hfp : NeZero (p.ramificationIdx P)] {i : ā„•} {a : S} (a_mem : a ∈ P ^ i) :

        S ā§ø P embeds into the quotient by P^(i+1) ā§ø P^e as a subspace of P^i ā§ø P^e.

        Instances For
          theorem Ideal.quotientToQuotientRangePowQuotSucc_mk {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [hfp : NeZero (p.ramificationIdx P)] {i : ā„•} {a : S} (a_mem : a ∈ P ^ i) (x : S) :
          theorem Ideal.quotientToQuotientRangePowQuotSucc_injective {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [hfp : NeZero (p.ramificationIdx P)] [IsDedekindDomain S] [P.IsPrime] {i : ā„•} (hi : i < p.ramificationIdx P) {a : S} (a_mem : a ∈ P ^ i) (a_notMem : a āˆ‰ P ^ (i + 1)) :
          Function.Injective ⇑(p.quotientToQuotientRangePowQuotSucc P a_mem)
          theorem Ideal.quotientToQuotientRangePowQuotSucc_surjective {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [hfp : NeZero (p.ramificationIdx P)] [IsDedekindDomain S] (hP0 : P ≠ ⊄) [hP : P.IsPrime] {i : ā„•} (hi : i < p.ramificationIdx P) {a : S} (a_mem : a ∈ P ^ i) (a_notMem : a āˆ‰ P ^ (i + 1)) :
          Function.Surjective ⇑(p.quotientToQuotientRangePowQuotSucc P a_mem)
          noncomputable def Ideal.quotientRangePowQuotSuccInclusionEquiv {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [hfp : NeZero (p.ramificationIdx P)] [IsDedekindDomain S] [P.IsPrime] (hP : P ≠ ⊄) {i : ā„•} (hi : i < p.ramificationIdx P) :

          Quotienting P^i / P^e by its subspace P^(i+1) ā§ø P^e is R ā§ø p-linearly isomorphic to S ā§ø P.

          Instances For
            theorem Ideal.rank_pow_quot_aux {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [hfp : NeZero (p.ramificationIdx P)] [IsDedekindDomain S] [p.IsMaximal] [P.IsPrime] (hP0 : P ≠ ⊄) {i : ā„•} (hi : i < p.ramificationIdx P) :
            Module.rank (R ā§ø p) ↄ(map (Quotient.mk (P ^ p.ramificationIdx P)) (P ^ i)) = Module.rank (R ā§ø p) (S ā§ø P) + Module.rank (R ā§ø p) ↄ(map (Quotient.mk (P ^ p.ramificationIdx P)) (P ^ (i + 1)))

            Since the inclusion (P^(i + 1) / P^e) āŠ‚ (P^i / P^e) has a kernel isomorphic to P / S, [P^i / P^e : R / p] = [P^(i+1) / P^e : R / p] + [P / S : R / p]

            theorem Ideal.rank_pow_quot {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [hfp : NeZero (p.ramificationIdx P)] [IsDedekindDomain S] [p.IsMaximal] [P.IsPrime] (hP0 : P ≠ ⊄) (i : ā„•) (hi : i ≤ p.ramificationIdx P) :
            Module.rank (R ā§ø p) ↄ(map (Quotient.mk (P ^ p.ramificationIdx P)) (P ^ i)) = (p.ramificationIdx P - i) • Module.rank (R ā§ø p) (S ā§ø P)
            theorem Ideal.rank_prime_pow_ramificationIdx {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [IsDedekindDomain S] [p.IsMaximal] [P.IsPrime] (hP0 : P ≠ ⊄) (he : p.ramificationIdx P ≠ 0) :

            If p is a maximal ideal of R, S extends R and P^e lies over p, then the dimension [S/(P^e) : R/p] is equal to e * [S/P : R/p].

            theorem Ideal.finrank_prime_pow_ramificationIdx {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) (P : Ideal S) [IsDedekindDomain S] (hP0 : P ≠ ⊄) [p.IsMaximal] [P.IsPrime] (he : p.ramificationIdx P ≠ 0) :

            If p is a maximal ideal of R, S extends R and P^e lies over p, then the dimension [S/(P^e) : R/p], as a natural number, is equal to e * [S/P : R/p].

            Properties of the factors of p.map (algebraMap R S) #

            theorem Ideal.Factors.ne_bot {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] (p : Ideal R) [IsDedekindDomain S] (P : ↄ(UniqueFactorizationMonoid.factors (map (algebraMap R S) p)).toFinset) :
            ↑P ≠ ⊄
            noncomputable def Ideal.Factors.piQuotientEquiv {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] [IsDedekindDomain S] (p : Ideal R) (hp : map (algebraMap R S) p ≠ ⊄) :
            S ā§ø map (algebraMap R S) p ā‰ƒ+* ((P : ↄ(UniqueFactorizationMonoid.factors (map (algebraMap R S) p)).toFinset) → S ā§ø ↑P ^ p.ramificationIdx ↑P)

            Chinese remainder theorem for a ring of integers: if the prime ideal p : Ideal R factors in S as āˆ i, P i ^ e i, then S ā§ø I factors as Ī  i, R ā§ø (P i ^ e i).

            Instances For
              @[simp]
              theorem Ideal.Factors.piQuotientEquiv_mk {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] [IsDedekindDomain S] (p : Ideal R) (hp : map (algebraMap R S) p ≠ ⊄) (x : S) :
              (piQuotientEquiv p hp) ((Quotient.mk (map (algebraMap R S) p)) x) = fun (x_1 : ↄ(UniqueFactorizationMonoid.factors (map (algebraMap R S) p)).toFinset) => (Quotient.mk (↑x_1 ^ p.ramificationIdx ↑x_1)) x
              @[simp]
              theorem Ideal.Factors.piQuotientEquiv_map {R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S] [IsDedekindDomain S] (p : Ideal R) (hp : map (algebraMap R S) p ≠ ⊄) (x : R) :
              (piQuotientEquiv p hp) ((algebraMap R (S ā§ø map (algebraMap R S) p)) x) = fun (x_1 : ↄ(UniqueFactorizationMonoid.factors (map (algebraMap R S) p)).toFinset) => (Quotient.mk (↑x_1 ^ p.ramificationIdx ↑x_1)) ((algebraMap R S) x)
              noncomputable def Ideal.Factors.piQuotientLinearEquiv {R : Type u} [CommRing R] (S : Type v) [CommRing S] [Algebra R S] [IsDedekindDomain S] (p : Ideal R) (hp : map (algebraMap R S) p ≠ ⊄) :
              (S ā§ø map (algebraMap R S) p) ā‰ƒā‚—[R ā§ø p] (P : ↄ(UniqueFactorizationMonoid.factors (map (algebraMap R S) p)).toFinset) → S ā§ø ↑P ^ p.ramificationIdx ↑P

              Chinese remainder theorem for a ring of integers: if the prime ideal p : Ideal R factors in S as āˆ i, P i ^ e i, then S ā§ø I factors R ā§ø I-linearly as Ī  i, R ā§ø (P i ^ e i).

              Instances For
                theorem Ideal.sum_ramification_inertia {R : Type u} [CommRing R] (S : Type v) [CommRing S] [Algebra R S] [IsDedekindDomain S] (K : Type u_1) (L : Type u_2) [Field K] [Field L] [IsDedekindDomain R] [Algebra R K] [IsFractionRing R K] [Algebra S L] [IsFractionRing S L] [Algebra K L] [Algebra R L] [IsScalarTower R S L] [IsScalarTower R K L] [Module.Finite R S] {p : Ideal R} [p.IsMaximal] (hp0 : p ≠ ⊄) :
                āˆ‘ P ∈ primesOverFinset p S, p.ramificationIdx P * p.inertiaDeg P = Module.finrank K L

                The fundamental identity of ramification index e and inertia degree f: for P ranging over the primes lying over p, āˆ‘ P, e P * f P = [Frac(S) : Frac(R)]; here S is a finite R-module (and thus Frac(S) : Frac(R) is a finite extension) and p is maximal.

                theorem Ideal.inertiaDeg_le_finrank {R : Type u} [CommRing R] (S : Type v) [CommRing S] [Algebra R S] [IsDedekindDomain S] (K : Type u_1) (L : Type u_2) [Field K] [Field L] [IsDedekindDomain R] [Algebra R K] [IsFractionRing R K] [Algebra S L] [IsFractionRing S L] [Algebra K L] [Algebra R L] [IsScalarTower R S L] [IsScalarTower R K L] [Module.Finite R S] [NoZeroSMulDivisors R S] {p : Ideal R} [p.IsMaximal] (P : Ideal S) [hP₁ : P.IsPrime] [hPā‚‚ : P.LiesOver p] (hp0 : p ≠ ⊄) :
                theorem Ideal.ramificationIdx_le_finrank {R : Type u} [CommRing R] (S : Type v) [CommRing S] [Algebra R S] [IsDedekindDomain S] (K : Type u_1) (L : Type u_2) [Field K] [Field L] [IsDedekindDomain R] [Algebra R K] [IsFractionRing R K] [Algebra S L] [IsFractionRing S L] [Algebra K L] [Algebra R L] [IsScalarTower R S L] [IsScalarTower R K L] [Module.Finite R S] [NoZeroSMulDivisors R S] {p : Ideal R} [p.IsMaximal] (P : Ideal S) [hP₁ : P.IsPrime] [hPā‚‚ : P.LiesOver p] :