ProCGroups.FreeProC.CanonicalData

6 Theorem | 1 Definition | 1 Structure

This module develops the rewriting and basis constructions behind the subgroup calculations. It tracks words and relations through the chosen transversal to obtain the required presentation or basis statements.

import
Imported by

Declarations

noncomputable def deltaBasisMap
    {X : Type u} {A : Type v} [One A] (a : A) : X → (X → A) := by
  classical
  exact fun x y => if y = x then a else 1

@[simp]

The usual \(\delta\)-basis map into a direct product.

theorem deltaBasisMap_apply_self
    {X : Type u} {A : Type v} [One A] (a : A) (x : X) :
    deltaBasisMap (X := X) (A := A) a x x = a

The \(\delta\)-basis map is one on the coordinate of the chosen generator.

Show proof
theorem deltaBasisMap_apply_ne
    {X : Type u} {A : Type v} [One A] (a : A) {x y : X} (h : y ≠ x) :
    deltaBasisMap (X := X) (A := A) a x y = 1

The \(\delta\)-basis map is zero on a basis coordinate different from the chosen generator.

Show proof
theorem familyConvergesToOne_rankOneBasisMap
    {G : Type u} [Group G] [TopologicalSpace G] (g : G) :
    FamilyConvergesToOne (G := G) (Function.const PUnit g)

The rank-one basis map converges to the identity in the one-point compactification basis space.

Show proof
theorem topologicallyGenerates_rankOneBasisMap
    {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G] {g : G}
    (hg : Generation.TopologicallyGenerates (G := G) ({g} : Set G)) :
    Generation.TopologicallyGenerates (G := G) (Set.range (Function.const PUnit g))

The rank-one basis map topologically generates the target cyclic pro-\(C\) group.

Show proof
theorem profiniteInteger_rankOneGeneratingData :
    ∃ ι : PUnit →
        Multiplicative
          (Completion.ProCIntegerLimitCarrier
            (ProCGroups.FiniteGroupClass.allFinite : ProCGroups.FiniteGroupClass.{0})),
      ProCGroups.ProC.allFiniteProC (G :=
        Multiplicative
          (Completion.ProCIntegerLimitCarrier
            (ProCGroups.FiniteGroupClass.allFinite : ProCGroups.FiniteGroupClass.{0}))) ∧
        FamilyConvergesToOne (G :=
          Multiplicative
            (Completion.ProCIntegerLimitCarrier
              (ProCGroups.FiniteGroupClass.allFinite : ProCGroups.FiniteGroupClass.{0}))) ι ∧
        Generation.TopologicallyGenerates (G :=
          Multiplicative
            (Completion.ProCIntegerLimitCarrier
              (ProCGroups.FiniteGroupClass.allFinite : ProCGroups.FiniteGroupClass.{0})))
          (Set.range ι)

The ordinary profinite integers, with their canonical generator, give the expected rank-one profinite generating datum.

Show proof
theorem proPInteger_rankOneGeneratingData (p : ℕ) [Fact (Nat.Prime p)] :
    ∃ ι : PUnit →
        Multiplicative
          (Completion.ProCIntegerLimitCarrier
            (ProCGroups.FiniteGroupClass.pGroup p : ProCGroups.FiniteGroupClass.{0})),
      ProCGroups.ProC.proPProC p (G :=
        Multiplicative
          (Completion.ProCIntegerLimitCarrier
            (ProCGroups.FiniteGroupClass.pGroup p : ProCGroups.FiniteGroupClass.{0}))) ∧
        FamilyConvergesToOne (G :=
          Multiplicative
            (Completion.ProCIntegerLimitCarrier
              (ProCGroups.FiniteGroupClass.pGroup p : ProCGroups.FiniteGroupClass.{0}))) ι ∧
        Generation.TopologicallyGenerates (G :=
          Multiplicative
            (Completion.ProCIntegerLimitCarrier
              (ProCGroups.FiniteGroupClass.pGroup p : ProCGroups.FiniteGroupClass.{0})))
          (Set.range ι)

The pro-\(p\) integers, with their canonical generator, give the expected rank-one pro-\(p\) generating datum.

Show proof
structure ModelData
    (K : Type u) [Field K] [IsAlgClosed K] where
  carrier : Type u
  instGroup : Group carrier
  instTopologicalSpace : TopologicalSpace carrier
  instIsTopologicalGroup : IsTopologicalGroup carrier
  isGaloisModel : Prop
  basis : Type u
  basisCard : Cardinal.mk basis = Cardinal.mk K
  basisMap : basis → carrier
  freeProfiniteBasis :
    IsFreeProCGroupOnConvergingSet
      (ProC := ProCGroups.ProC.allFiniteProC) basis carrier basisMap

Application-specific bundled data for a profinite group modeled on \(\operatorname{Gal}(K(t)^{\mathrm{alg}}/K(t))\). This lives outside the reusable FreeProC formulation because the Galois interpretation is extra mathematical input, not part of the abstract free pro-\(C\) interface.