Module

Basic.lean

Nyll.ValuedFieldTheory.Ramification.HilbertRamification.Dedekind.Basic
38 declarations indexed from sourceView source ↗

Hilbert ramification theory: Dedekind-domain layer

This file manages the Dedekind-domain part of Hilbert ramification theory in prime-decomposition theory.

The implementation uses mathlib's ramification/inertia theorems where those are already the source proof, but the decomposition/inertia/residue-action interface is proved here: membership criteria, residue-action formula, normality of inertia in the decomposition group, exactness, and quotient form.

Declarations

HilbertRamification.Dedekind.decompositionGroup

The decomposition and inertia definition: the decomposition group of a prime ideal.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
abbrev decompositionGroup
    (P : Ideal B) (G : Type*) [Group G] [MulSemiringAction G B] :
    Subgroup G
HilbertRamification.Dedekind.mem_decompositionGroup_iff

Membership in the decomposition group is exactly stabilization of the prime ideal.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem mem_decompositionGroup_iff
    {P : Ideal B} {G : Type*} [Group G] [MulSemiringAction G B] {σ : G} :
    σ ∈ decompositionGroup P G ↔ σ • P = P
HilbertRamification.Dedekind.inertiaGroup

The inertia-field definition: the inertia group of a prime ideal.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
abbrev inertiaGroup
    (P : Ideal B) (G : Type*) [Group G] [MulSemiringAction G B] :
    Subgroup G
HilbertRamification.Dedekind.mem_inertiaGroup_iff

Membership in the inertia group is trivial action on the residue ring.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem mem_inertiaGroup_iff
    {P : Ideal B} {G : Type*} [Group G] [MulSemiringAction G B] {σ : G} :
    σ ∈ inertiaGroup P G ↔ ∀ x : B, σ • x - x ∈ P
HilbertRamification.Dedekind.residueStabilizerHom

prime-decomposition theory: the residue-field action of the decomposition group.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
abbrev residueStabilizerHom
    (p : Ideal A) (P : Ideal B) [P.LiesOver p]
    (G : Type*) [Group G] [MulSemiringAction G B] [SMulCommClass G A B] :
    decompositionGroup P G →* (B ⧸ P) ≃ₐ[A ⧸ p] B ⧸ P
HilbertRamification.Dedekind.residueStabilizerHom_apply

prime-decomposition theory: the residue action is concretely a mod P ↦ σ a mod P.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem residueStabilizerHom_apply
    (p : Ideal A) (P : Ideal B) [P.LiesOver p]
    (G : Type*) [Group G] [MulSemiringAction G B] [SMulCommClass G A B]
    (σ : decompositionGroup P G) (b : B) :
    residueStabilizerHom p P G σ b = ↑(σ • b)
HilbertRamification.Dedekind.inertiaSubgroupOfDecomposition_normal

Inertia is normal inside the decomposition group. The proof is the intrinsic conjugation argument: if σ is trivial mod P, then τ σ τ⁻¹ is also trivial mod P because τ stabilizes P.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
instance inertiaSubgroupOfDecomposition_normal
    (P : Ideal B) (G : Type*) [Group G] [MulSemiringAction G B] :
    ((inertiaGroup P G).subgroupOf (decompositionGroup P G)).Normal
HilbertRamification.Dedekind.exists_smul_eq_of_isGaloisGroup

The valuation-conjugacy theorem: the Galois group acts transitively on primes over a fixed prime.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem exists_smul_eq_of_isGaloisGroup
    (p : Ideal A) (P Q : Ideal B)
    [P.IsPrime] [P.LiesOver p] [Q.IsPrime] [Q.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    ∃ σ : G, σ • P = Q
HilbertRamification.Dedekind.dedekindRamification_ramificationIdx_eq

prime-decomposition theory: in the Galois case the ramification index is independent of the prime above p.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_ramificationIdx_eq
    (p : Ideal A) (P Q : Ideal B)
    [P.IsPrime] [P.LiesOver p] [Q.IsPrime] [Q.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    P.ramificationIdx A = Q.ramificationIdx A
HilbertRamification.Dedekind.dedekindRamification_inertiaDeg_eq

prime-decomposition theory: in the Galois case the inertia degree is independent of the prime above p.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_inertiaDeg_eq
    (p : Ideal A) [p.IsMaximal] (P Q : Ideal B)
    [P.IsPrime] [P.LiesOver p] [Q.IsPrime] [Q.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    P.inertiaDeg A = Q.inertiaDeg A
HilbertRamification.Dedekind.dedekindDecomposition_primesOverEquivQuotientDecompositionGroup

Decomposition and inertia groups satisfy: the primes above p are identified with the cosets G/G_P.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
def dedekindDecomposition_primesOverEquivQuotientDecompositionGroup
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    p.primesOver B ≃ G ⧸ decompositionGroup P G
HilbertRamification.Dedekind.dedekindDecomposition_ncard_primesOver_eq_decomposition_index

Decomposition and inertia groups satisfy: the number of primes above p is the index (G : G_P).

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindDecomposition_ncard_primesOver_eq_decomposition_index
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    (p.primesOver B).ncard = (decompositionGroup P G).index
HilbertRamification.Dedekind.dedekindDecomposition_decompositionGroup_eq_top_iff_primesOver_ncard_eq_one

Decomposition and inertia groups satisfy: the group-action form of nonsplitting, G_P = G iff there is one prime above p.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindDecomposition_decompositionGroup_eq_top_iff_primesOver_ncard_eq_one
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    decompositionGroup P G = ⊤ ↔ (p.primesOver B).ncard = 1
HilbertRamification.Dedekind.dedekindDecomposition_decompositionGroup_eq_bot_iff_primesOver_ncard_eq_card

Decomposition and inertia groups satisfy: the group-action form of total splitting, G_P = 1 iff the number of primes above p is #G.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindDecomposition_decompositionGroup_eq_bot_iff_primesOver_ncard_eq_card
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    {G : Type*} [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    decompositionGroup P G = ⊥ ↔ (p.primesOver B).ncard = Nat.card G
HilbertRamification.Dedekind.dedekindRamification_residueAction_ker

prime-decomposition theory: the kernel of the residue action is the inertia group.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueAction_ker
    (p : Ideal A) (P : Ideal B) [P.LiesOver p]
    (G : Type*) [Group G] [MulSemiringAction G B] [SMulCommClass G A B] :
    MonoidHom.ker (residueStabilizerHom p P G) =
      (inertiaGroup P G).subgroupOf (decompositionGroup P G)
HilbertRamification.Dedekind.dedekindRamification_residueAction_mulExact

prime-decomposition theory: I_P -> G_P -> Aut(kappa(P)/kappa(p)) is exact at G_P.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueAction_mulExact
    (p : Ideal A) (P : Ideal B) [P.LiesOver p]
    (G : Type*) [Group G] [MulSemiringAction G B] [SMulCommClass G A B] :
    Function.MulExact
      ((inertiaGroup P G).subgroupOf (decompositionGroup P G)).subtype
      (residueStabilizerHom p P G)
HilbertRamification.Dedekind.dedekindRamification_residueAction_surjective

prime-decomposition theory: for a finite invariant Galois action, the residue action is surjective.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueAction_surjective
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B] [SMulCommClass G A B]
    [Algebra.IsInvariant A B G] :
    Function.Surjective (residueStabilizerHom p P G)
HilbertRamification.Dedekind.dedekindRamification_residueExtension_normal

prime-decomposition theory: the residue class field extension is normal.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueExtension_normal
    (p : Ideal A) [p.IsMaximal] (P : Ideal B)
    [P.IsMaximal] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [Algebra.IsInvariant A B G] :
    Normal (A ⧸ p) (B ⧸ P)
HilbertRamification.Dedekind.dedekindRamification_residueExtension_isGalois

prime-decomposition theory: if the residue class field extension is separable, then it is Galois.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueExtension_isGalois
    (p : Ideal A) [p.IsMaximal] (P : Ideal B)
    [P.IsMaximal] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [Algebra.IsInvariant A B G] [Algebra.IsSeparable (A ⧸ p) (B ⧸ P)] :
    IsGalois (A ⧸ p) (B ⧸ P)
HilbertRamification.Dedekind.dedekindResidue_residueExtension_normal_and_residueAction_surjective

The conjugation and base-change law: the residue extension is normal and the decomposition group maps onto its residue Galois group.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindResidue_residueExtension_normal_and_residueAction_surjective
    (p : Ideal A) [p.IsMaximal] (P : Ideal B)
    [P.IsMaximal] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B] [SMulCommClass G A B]
    [Algebra.IsInvariant A B G] :
    Normal (A ⧸ p) (B ⧸ P) ∧
      Function.Surjective (residueStabilizerHom p P G)
HilbertRamification.Dedekind.dedekindRamification_residueAction_shortExact

The localization and decomposition comparison gives: 1 -> I_P -> G_P -> Gal(kappa(P)/kappa(p)) -> 1, in the finite invariant Galois-action form.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueAction_shortExact
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B] [SMulCommClass G A B]
    [Algebra.IsInvariant A B G] :
    Function.Injective
        ((inertiaGroup P G).subgroupOf (decompositionGroup P G)).subtype ∧
      Function.MulExact
        ((inertiaGroup P G).subgroupOf (decompositionGroup P G)).subtype
        (residueStabilizerHom p P G) ∧
      Function.Surjective (residueStabilizerHom p P G)
HilbertRamification.Dedekind.dedekindRamification_decompositionQuotientInertiaEquivResidueGalois

The localization and decomposition comparison gives: the quotient of the decomposition group by inertia is the residue Galois group.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
def dedekindRamification_decompositionQuotientInertiaEquivResidueGalois
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B] [SMulCommClass G A B]
    [Algebra.IsInvariant A B G] :
    decompositionGroup P G ⧸
        (inertiaGroup P G).subgroupOf (decompositionGroup P G) ≃*
      (B ⧸ P) ≃ₐ[A ⧸ p] B ⧸ P
HilbertRamification.Dedekind.dedekindRamification_residueAction_injective_of_inertiaGroup_eq_bot

A trivial-inertia special case: if the inertia group is trivial, then the residue action is injective.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueAction_injective_of_inertiaGroup_eq_bot
    (p : Ideal A) (P : Ideal B) [P.LiesOver p]
    (G : Type*) [Group G] [MulSemiringAction G B] [SMulCommClass G A B]
    (hI : inertiaGroup P G = ⊥) :
    Function.Injective (residueStabilizerHom p P G)
HilbertRamification.Dedekind.dedekindRamification_residueAction_bijective_of_inertiaGroup_eq_bot

A trivial-inertia special case: if the inertia group is trivial, then the residue action identifies G_P with the residue Galois group.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueAction_bijective_of_inertiaGroup_eq_bot
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B] [SMulCommClass G A B]
    [Algebra.IsInvariant A B G] (hI : inertiaGroup P G = ⊥) :
    Function.Bijective (residueStabilizerHom p P G)
HilbertRamification.Dedekind.dedekindRamification_decompositionGroupEquivResidueGalois_of_inertiaGroup_eq_bot

A trivial-inertia special case: when I_P = 1, the residue Galois group is isomorphic to G_P.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
def dedekindRamification_decompositionGroupEquivResidueGalois_of_inertiaGroup_eq_bot
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B] [SMulCommClass G A B]
    [Algebra.IsInvariant A B G] (hI : inertiaGroup P G = ⊥) :
    decompositionGroup P G ≃*
      (B ⧸ P) ≃ₐ[A ⧸ p] B ⧸ P
HilbertRamification.Dedekind.dedekindRamification_residueGaloisEmbeddingIntoG_of_inertiaGroup_eq_bot

A trivial-inertia special case: when I_P = 1, the residue Galois group embeds into G through the decomposition group.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
def dedekindRamification_residueGaloisEmbeddingIntoG_of_inertiaGroup_eq_bot
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B] [SMulCommClass G A B]
    [Algebra.IsInvariant A B G] (hI : inertiaGroup P G = ⊥) :
    ((B ⧸ P) ≃ₐ[A ⧸ p] B ⧸ P) →* G
HilbertRamification.Dedekind.dedekindRamification_residueGaloisEmbeddingIntoG_of_inertiaGroup_eq_bot_injective

The residue-Galois embedding into G from the preceding declaration is injective.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_residueGaloisEmbeddingIntoG_of_inertiaGroup_eq_bot_injective
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B] [SMulCommClass G A B]
    [Algebra.IsInvariant A B G] (hI : inertiaGroup P G = ⊥) :
    Function.Injective
      (dedekindRamification_residueGaloisEmbeddingIntoG_of_inertiaGroup_eq_bot p P G hI)
HilbertRamification.Dedekind.dedekindRamification_galois_prime_decomposition

prime-decomposition theory: in the Galois case the prime decomposition has a common ramification index, p B = ∏ P|p P^e.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_galois_prime_decomposition
    [IsDedekindDomain A] [IsDedekindDomain B] [Module.Finite A B]
    [IsTorsionFree A B]
    (p : Ideal A) [p.IsMaximal] (hp : p ≠ ⊥)
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    Ideal.map (algebraMap A B) p =
      ∏ P ∈ p.primesOver B, P ^ Ideal.ramificationIdxIn p B
HilbertRamification.Dedekind.dedekindRamification_galois_fundamental_identity

prime-decomposition theory, Galois fundamental identity: r * e * f = |G|, with e and f independent of the chosen prime above p.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_galois_fundamental_identity
    [IsDedekindDomain A] (p : Ideal A) [p.IsMaximal] (_hpb : p ≠ ⊥)
    (B : Type*) [CommRing B] [IsDedekindDomain B] [Algebra A B]
    [Module.Finite A B] [IsTorsionFree A B]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    (p.primesOver B).ncard *
        (Ideal.ramificationIdxIn p B * Ideal.inertiaDegIn p B) =
      Nat.card G
HilbertRamification.Dedekind.dedekindRamification_unramified_decomposition_law

At an unramified prime, the Galois fundamental identity reduces to r * f = |G|.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_unramified_decomposition_law
    [IsDedekindDomain A]
    (p : Ideal A) [p.IsMaximal] (hp : p ≠ ⊥)
    (B : Type*) [CommRing B] [IsDedekindDomain B] [Algebra A B]
    [Module.Finite A B] [IsTorsionFree A B]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B]
    (hunramified : Ideal.ramificationIdxIn p B = 1) :
    (p.primesOver B).ncard * Ideal.inertiaDegIn p B =
      Nat.card G
HilbertRamification.Dedekind.dedekindRamification_unramified_numberOfPrimes_eq_degree_div_inertiaDegree

Division form of the unramified Galois decomposition law.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem
    dedekindRamification_unramified_numberOfPrimes_eq_degree_div_inertiaDegree
    [IsDedekindDomain A]
    (p : Ideal A) [p.IsMaximal] (hp : p ≠ ⊥)
    (B : Type*) [CommRing B] [IsDedekindDomain B] [Algebra A B]
    [Module.Finite A B] [IsTorsionFree A B]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B]
    (hunramified : Ideal.ramificationIdxIn p B = 1) :
    (p.primesOver B).ncard =
      Nat.card G / Ideal.inertiaDegIn p B
HilbertRamification.Dedekind.dedekindRamification_ncard_primesOver_mul_decomposition_card

The prime-decomposition tower identity: orbit-stabilizer for the action on primes above p, r * #G_P = #G.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_ncard_primesOver_mul_decomposition_card
    (p : Ideal A) (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    (p.primesOver B).ncard * Nat.card (decompositionGroup P G) =
      Nat.card G
HilbertRamification.Dedekind.dedekindRamification_decomposition_card_eq_ramificationIdxIn_mul_inertiaDegIn

The prime-decomposition tower identity: the decomposition group has cardinality e * f.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_decomposition_card_eq_ramificationIdxIn_mul_inertiaDegIn
    [IsDedekindDomain A] [IsDedekindDomain B] [Module.Finite A B]
    [IsTorsionFree A B]
    (p : Ideal A) [p.IsMaximal] (hp : p ≠ ⊥)
    (P : Ideal B) [P.IsPrime] [P.LiesOver p]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    Nat.card (decompositionGroup P G) =
      Ideal.ramificationIdxIn p B * Ideal.inertiaDegIn p B
HilbertRamification.Dedekind.dedekindRamification_decompositionQuotientInertia_card_eq_inertiaDeg

Prime-decomposition statement: the quotient of the decomposition group by inertia has cardinality equal to the inertia degree.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_decompositionQuotientInertia_card_eq_inertiaDeg
    (p : Ideal A) [p.IsMaximal]
    (P : Ideal B) [P.IsPrime] [P.LiesOver p] [P.IsMaximal]
    [Algebra.IsSeparable (A ⧸ p) (B ⧸ P)]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
  Nat.card
        (decompositionGroup P G ⧸
          (inertiaGroup P G).subgroupOf (decompositionGroup P G)) =
      P.inertiaDeg A
HilbertRamification.Dedekind.dedekindRamification_decompositionQuotientInertia_card_eq_inertiaDegIn

Prime-decomposition statement: the quotient cardinality is the Galois-invariant inertia degree f.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_decompositionQuotientInertia_card_eq_inertiaDegIn
    (p : Ideal A) [p.IsMaximal]
    (P : Ideal B) [P.IsPrime] [P.LiesOver p] [P.IsMaximal]
    [Algebra.IsSeparable (A ⧸ p) (B ⧸ P)]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    Nat.card
        (decompositionGroup P G ⧸
          (inertiaGroup P G).subgroupOf (decompositionGroup P G)) =
      Ideal.inertiaDegIn p B
HilbertRamification.Dedekind.dedekindRamification_decomposition_card_eq_quotient_card_mul_inertia_card

Prime-decomposition statement: #G_P = #(G_P/I_P) * #I_P for the exact residue sequence.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_decomposition_card_eq_quotient_card_mul_inertia_card
    (P : Ideal B) (G : Type*) [Group G] [MulSemiringAction G B] :
    Nat.card (decompositionGroup P G) =
      Nat.card
          (decompositionGroup P G ⧸
            (inertiaGroup P G).subgroupOf (decompositionGroup P G)) *
        Nat.card (inertiaGroup P G)
HilbertRamification.Dedekind.dedekindRamification_decomposition_card_eq_inertia_card_mul_inertiaDegIn

Prime-decomposition statement: #G_P = #I_P * f, with f the Galois-invariant inertia degree.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_decomposition_card_eq_inertia_card_mul_inertiaDegIn
    (p : Ideal A) [p.IsMaximal]
    (P : Ideal B) [P.IsPrime] [P.LiesOver p] [P.IsMaximal]
    [Algebra.IsSeparable (A ⧸ p) (B ⧸ P)]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] :
    Nat.card (decompositionGroup P G) =
      Nat.card (inertiaGroup P G) * Ideal.inertiaDegIn p B
HilbertRamification.Dedekind.dedekindRamification_inertia_card_eq_ramificationIdxIn

prime-decomposition theory: the inertia subgroup has cardinality equal to the Galois ramification index.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace HilbertRamification
namespace Dedekind
open scoped Pointwise
open Algebra Module
attribute [local instance] Ideal.Quotient.field
variable {A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
theorem dedekindRamification_inertia_card_eq_ramificationIdxIn
    [IsDedekindDomain A] [IsDedekindDomain B] [Module.Finite A B]
    [IsTorsionFree A B]
    (p : Ideal A) (P : Ideal B) [P.LiesOver p] [P.IsMaximal]
    [Algebra.IsSeparable (A ⧸ p) (B ⧸ P)]
    (G : Type*) [Group G] [Finite G] [MulSemiringAction G B]
    [IsGaloisGroup G A B] (hp : p ≠ ⊥) :
    Nat.card (P.toAddSubgroup.inertia G) = Ideal.ramificationIdxIn p B