Module

KummerAbelianCyclicFactors.lean

Nyll.GaloisCohomology.Kummer.Abstract.KummerAbelianCyclicFactors
17 declarations indexed from sourceView source ↗

finite abelian Kummer theory, the finite abelian Kummer decomposition: cyclic factors of a finite

abelian extension

The proof of the finite abelian Kummer decomposition reduces a finite abelian extension to cyclic subextensions. This file supplies the group-theoretic source for that step. A finite commutative group is written as a finite product of cyclic ZMod groups. The kernels of its coordinate maps have trivial intersection. Pulling those kernels back along a quotient map produces intermediate subgroups whose quotients are finite cyclic and whose intersection is the original normal subgroup.

No radical generators or field-lattice endpoint are asserted here.

Declarations

KummerTheory.finiteCommGroup_exists_jointlyFaithful_cyclic_factors

Coordinate characters obtained from the structure theorem separate the elements of a finite commutative group.

Source context 4 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section FiniteAbelianCyclicFactors
theorem finiteCommGroup_exists_jointlyFaithful_cyclic_factors
    (Q : Type*) [CommGroup Q] [Finite Q] :
    ∃ (ι : Type 0) (_ : Fintype ι) (m : ι → ℕ),
      (∀ i, 1 < m i) ∧
      ∃ f : ∀ i, Q →* Multiplicative (ZMod (m i)),
        (∀ i, Function.Surjective (f i)) ∧
        (⨅ i, MonoidHom.ker (f i)) = ⊥
KummerTheory.cyclicFactorSubgroup

Pull a quotient-factor kernel back to the original group.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section FiniteAbelianCyclicFactors
section Pullback
variable {P C : Type*} [Group P] [Group C]
  (H : Subgroup P) [H.Normal]
def cyclicFactorSubgroup (f : (P ⧸ H) →* C) : Subgroup P
KummerTheory.cyclicFactorSubgroup_normal

The kernel subgroup attached to a cyclic quotient factor is normal.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section FiniteAbelianCyclicFactors
section Pullback
variable {P C : Type*} [Group P] [Group C]
  (H : Subgroup P) [H.Normal]
instance cyclicFactorSubgroup_normal (f : (P ⧸ H) →* C) :
    (cyclicFactorSubgroup H f).Normal
KummerTheory.le_cyclicFactorSubgroup

The original normal subgroup lies in every pulled-back factor kernel.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section FiniteAbelianCyclicFactors
section Pullback
variable {P C : Type*} [Group P] [Group C]
  (H : Subgroup P) [H.Normal]
theorem le_cyclicFactorSubgroup (f : (P ⧸ H) →* C) :
    H ≤ cyclicFactorSubgroup H f
KummerTheory.cyclic_cyclicFactorSubgroup_quotient

A surjective cyclic factor gives a cyclic quotient of the original group by its pulled-back kernel.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section FiniteAbelianCyclicFactors
section Pullback
variable {P C : Type*} [Group P] [Group C]
  (H : Subgroup P) [H.Normal]
theorem cyclic_cyclicFactorSubgroup_quotient
    [IsCyclic C] (f : (P ⧸ H) →* C) (hf : Function.Surjective f) :
    IsCyclic (P ⧸ cyclicFactorSubgroup H f)
KummerTheory.finite_cyclicFactorSubgroup_quotient

If the cyclic factor is finite, so is the corresponding quotient.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section FiniteAbelianCyclicFactors
section Pullback
variable {P C : Type*} [Group P] [Group C]
  (H : Subgroup P) [H.Normal]
theorem finite_cyclicFactorSubgroup_quotient
    [Finite C] (f : (P ⧸ H) →* C) (hf : Function.Surjective f) :
    Finite (P ⧸ cyclicFactorSubgroup H f)
KummerTheory.iInf_cyclicFactorSubgroup_eq

Jointly faithful quotient factors pull back to subgroups whose intersection is exactly the original normal subgroup.

Source context 7 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section FiniteAbelianCyclicFactors
section Pullback
variable {P C : Type*} [Group P] [Group C]
  (H : Subgroup P) [H.Normal]
variable {ι : Type*} {Cι : ι → Type*} [∀ i, Group (Cι i)]
theorem iInf_cyclicFactorSubgroup_eq
    (f : ∀ i, (P ⧸ H) →* Cι i)
    (hfaithful : (⨅ i, MonoidHom.ker (f i)) = ⊥) :
    (⨅ i, cyclicFactorSubgroup H (f i)) = H
KummerTheory.extensionSubgroup_isClosed

A closed abstract field subgroup G_L remains closed when regarded as a subgroup of the larger abstract field subgroup G_K.

Source context 5 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
theorem extensionSubgroup_isClosed
    {G : Type*} [Group G] [TopologicalSpace G]
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup) :
    IsClosed (extensionSubgroup (G := G) K L hLK : Set K.toSubgroup)
KummerTheory.cyclicFactorSubgroup_isClosed

A pulled-back cyclic factor kernel is closed inside G_K: the finite quotient by G_L is discrete, and the factor kernel is pulled back along the continuous quotient map.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
theorem cyclicFactorSubgroup_isClosed
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C) :
    IsClosed
      (cyclicFactorSubgroup (extensionSubgroup (G := G) K L hLK) f :
        Set K.toSubgroup)
KummerTheory.closedCyclicFactorSubgroup

The closed abstract intermediate field attached to one cyclic coordinate factor of G_K/G_L.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
def closedCyclicFactorSubgroup
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C) :
    ClosedSubgroup G where
  toSubgroup :=
    (cyclicFactorSubgroup (extensionSubgroup (G := G) K L hLK) f).map
      K.toSubgroup.subtype
  isClosed' := by
    change IsClosed
      ((fun x : K.toSubgroup => (x : G)) ''
        (cyclicFactorSubgroup (extensionSubgroup (G := G) K L hLK) f :
          Set K.toSubgroup))
    exact K.isClosed'.isClosedMap_subtype_val _
      (cyclicFactorSubgroup_isClosed K L hLK f)
KummerTheory.closedCyclicFactorSubgroup_le_base

The cyclic-factor intermediate subgroup lies below the base subgroup G_K.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
theorem closedCyclicFactorSubgroup_le_base
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C) :
    (closedCyclicFactorSubgroup K L hLK f).toSubgroup ≤ K.toSubgroup
KummerTheory.le_closedCyclicFactorSubgroup

The original subgroup G_L lies below every cyclic-factor intermediate subgroup. Finiteness is needed by the closed intermediate object itself: it makes the quotient discrete, hence its pulled-back kernel closed.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
theorem le_closedCyclicFactorSubgroup
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C) :
    L.toSubgroup ≤
      (closedCyclicFactorSubgroup (hfinite := hfinite) K L hLK f).toSubgroup
KummerTheory.extensionSubgroup_closedCyclicFactorSubgroup_eq

Viewed inside G_K, the closed cyclic-factor subgroup has exactly the pulled-back coordinate kernel as its extension subgroup.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
theorem extensionSubgroup_closedCyclicFactorSubgroup_eq
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C) :
    extensionSubgroup (G := G) K (closedCyclicFactorSubgroup K L hLK f)
        (closedCyclicFactorSubgroup_le_base K L hLK f) =
      cyclicFactorSubgroup (extensionSubgroup (G := G) K L hLK) f
KummerTheory.extensionSubgroup_closedCyclicFactorSubgroup_normal

The extension subgroup of a closed cyclic factor is normal in G_K.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
instance extensionSubgroup_closedCyclicFactorSubgroup_normal
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C) :
    (extensionSubgroup (G := G) K (closedCyclicFactorSubgroup K L hLK f)
      (closedCyclicFactorSubgroup_le_base K L hLK f)).Normal
KummerTheory.finite_extensionSubgroup_closedCyclicFactorSubgroup_quotient

The quotient attached to a surjective finite cyclic coordinate is finite.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
theorem finite_extensionSubgroup_closedCyclicFactorSubgroup_quotient
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C] [Finite C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C)
    (hf : Function.Surjective f) :
    Finite
      (K.toSubgroup ⧸
        extensionSubgroup (G := G) K (closedCyclicFactorSubgroup K L hLK f)
          (closedCyclicFactorSubgroup_le_base K L hLK f))
KummerTheory.cyclic_extensionSubgroup_closedCyclicFactorSubgroup_quotient

The quotient attached to a surjective cyclic coordinate is cyclic.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
theorem cyclic_extensionSubgroup_closedCyclicFactorSubgroup_quotient
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C] [IsCyclic C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C)
    (hf : Function.Surjective f) :
    IsCyclic
      (K.toSubgroup ⧸
        extensionSubgroup (G := G) K (closedCyclicFactorSubgroup K L hLK f)
          (closedCyclicFactorSubgroup_le_base K L hLK f))
KummerTheory.extensionSubgroup_closedCyclicFactorSubgroup_quotient_pow_eq_one

An exponent bound on G_K/G_L descends to the quotient attached to a closed cyclic coordinate.

Source context 6 commands

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

namespace KummerTheory
open CyclicCohomology
noncomputable section
section ClosedCyclicSubextensions
variable {G : Type*} [Group G] [TopologicalSpace G]
variable [IsTopologicalGroup G]
theorem extensionSubgroup_closedCyclicFactorSubgroup_quotient_pow_eq_one
    (K L : ClosedSubgroup G) (hLK : L.toSubgroup ≤ K.toSubgroup)
    [hnormal : (extensionSubgroup (G := G) K L hLK).Normal]
    [hfinite : Finite (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK)]
    {C : Type*} [Group C]
    (f : (K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK) →* C)
    {n : ℕ}
    (hexponent : ∀ q : K.toSubgroup ⧸ extensionSubgroup (G := G) K L hLK,
      q ^ n = 1) :
    ∀ q : K.toSubgroup ⧸
        extensionSubgroup (G := G) K (closedCyclicFactorSubgroup K L hLK f)
          (closedCyclicFactorSubgroup_le_base K L hLK f),
      q ^ n = 1