FoxDifferential.Completed.FreeProC.FiniteQuotientStages

15 Theorem | 8 Definition | 2 Instance

This module develops the maps induced by continuous homomorphisms. It organizes the relevant quotient pullbacks and finite-stage maps, then proves the compatibility statements needed for the completed construction.

import
Imported by

Declarations

def freeProCFiniteQuotientStageHom
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C) :
    FreeGroup X →* CompletedGroupAlgebraQuotientInClass H C U :=
  FreeGroup.lift fun x : X =>
    openNormalSubgroupInClassProj (C := C) (G := H) U (φ x)

@[simp]

The free-group map to a finite quotient of H induced by a family X \(\to\) H.

theorem freeProCFiniteQuotientStageHom_of
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C) (x : X) :
    freeProCFiniteQuotientStageHom (C := C) φ U (FreeGroup.of x) =
      (QuotientGroup.mk (φ x) :
        CompletedGroupAlgebraQuotientInClass H C U)

The finite-quotient stage homomorphism for a free pro-\(C\) group has the stated value on representatives.

Show proof
theorem freeProCFiniteQuotientStageHom_eq_comp
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C) :
    freeProCFiniteQuotientStageHom (C := C) φ U =
      (openNormalSubgroupInClassProj (C := C) (G := H) U).comp (FreeGroup.lift φ)

The free quotient-stage map is the quotient projection after the original free-group map.

Show proof
theorem freeProCFiniteQuotientStageHom_transition
    (φ : X → H) {U V : CompletedGroupAlgebraIndexInClass H C} (hUV : U ≤ V)
    (w : FreeGroup X) :
    (OpenNormalSubgroupInClass.map
      (C := C) (G := H)
      (U := OrderDual.ofDual U) (V := OrderDual.ofDual V) hUV)
        (freeProCFiniteQuotientStageHom (C := C) φ V w) =
      freeProCFiniteQuotientStageHom (C := C) φ U w

Compatibility of finite quotient-stage maps under quotient refinement.

Show proof
def freeProCFiniteQuotientStageKernel
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C) :
    Subgroup (FreeGroup X) :=
  (freeProCFiniteQuotientStageHom (C := C) φ U).ker

The finite-stage relation subgroup \(\ker(F_X \to H/U)\).

instance freeProCFiniteQuotientStageKernel_normal
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C) :
    (freeProCFiniteQuotientStageKernel (C := C) φ U).Normal := by
  dsimp [freeProCFiniteQuotientStageKernel]
  infer_instance

The finite-stage relation kernel is a normal subgroup.

theorem freeProCFiniteQuotientStageKernel_antitone
    (φ : X → H) {U V : CompletedGroupAlgebraIndexInClass H C} (hUV : U ≤ V) :
    freeProCFiniteQuotientStageKernel (C := C) φ V ≤
      freeProCFiniteQuotientStageKernel (C := C) φ U

The finite-stage relation kernels are antitone with respect to quotient refinement.

Show proof
theorem freeProCFiniteQuotientStageHom_surjective_of_topologicallyGenerates
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C)
    [DiscreteTopology (CompletedGroupAlgebraQuotientInClass H C U)]
    (hφgen :
      ProCGroups.Generation.TopologicallyGenerates (G := H) (Set.range φ)) :
    Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ U)

If the original family topologically generates \(H\), then its image generates every discrete finite quotient \(H/U\), so the corresponding free-group map is surjective.

Show proof
def freeProCFiniteQuotientStageTargetEquiv
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C)
    (hsurj : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ U)) :
    finiteFoxStageTargetQuotient
        (X := X) (freeProCFiniteQuotientStageKernel (C := C) φ U) ≃*
      CompletedGroupAlgebraQuotientInClass H C U :=
  QuotientGroup.quotientKerEquivOfSurjective
    (freeProCFiniteQuotientStageHom (C := C) φ U) hsurj

@[simp]

The canonical identification \(F_X / \ker(F_X \to H/U) \simeq H/U\).

theorem freeProCFiniteQuotientStageTargetEquiv_mk
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C)
    (hsurj : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ U))
    (w : FreeGroup X) :
    freeProCFiniteQuotientStageTargetEquiv (C := C) φ U hsurj
        (QuotientGroup.mk'
          (freeProCFiniteQuotientStageKernel (C := C) φ U) w) =
      freeProCFiniteQuotientStageHom (C := C) φ U w

The finite-quotient target equivalence sends the class of a free word in the stage quotient to its image under the corresponding finite-stage homomorphism.

Show proof
def freeProCFiniteQuotientStageQMap
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C)
    (hsurj : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ U)) :
    CompletedGroupAlgebraQuotientInClass H C U →*
      finiteFoxStageTargetQuotient
        (X := X) (freeProCFiniteQuotientStageKernel (C := C) φ U) :=
  (freeProCFiniteQuotientStageTargetEquiv (C := C) φ U hsurj).symm.toMonoidHom

The finite quotient stage map sends a target quotient class into the corresponding free-group quotient stage through the inverse of the target equivalence.

theorem freeProCFiniteQuotientStageQMap_injective
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C)
    (hsurj : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ U)) :
    Function.Injective (freeProCFiniteQuotientStageQMap (C := C) φ U hsurj)

The finite-quotient stage quotient map is injective.

Show proof
theorem freeProCFiniteQuotientStageQMap_generator
    (φ : X → H) (U : CompletedGroupAlgebraIndexInClass H C)
    (hsurj : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ U))
    (x : X) :
    freeProCFiniteQuotientStageQMap (C := C) φ U hsurj
        (QuotientGroup.mk (φ x)) =
      QuotientGroup.mk'
        (freeProCFiniteQuotientStageKernel (C := C) φ U) (FreeGroup.of x)

The finite-quotient stage quotient map sends each generator to its quotient-stage image.

Show proof
theorem freeProCFiniteQuotientStageTargetEquiv_transition
    (φ : X → H) {U V : CompletedGroupAlgebraIndexInClass H C} (hUV : U ≤ V)
    (hsurjU : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ U))
    (hsurjV : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ V))
    (y : finiteFoxStageTargetQuotient
      (X := X) (freeProCFiniteQuotientStageKernel (C := C) φ V)) :
    freeProCFiniteQuotientStageTargetEquiv (C := C) φ U hsurjU
        (finiteFoxStageTargetQuotientMap
          (X := X) (freeProCFiniteQuotientStageKernel_antitone (C := C) φ hUV) y) =
      (OpenNormalSubgroupInClass.map
        (C := C) (G := H)
        (U := OrderDual.ofDual U) (V := OrderDual.ofDual V) hUV)
        (freeProCFiniteQuotientStageTargetEquiv (C := C) φ V hsurjV y)

The compatibility between the canonical \(F_X/kernel \to H/U\) equivalences and quotient refinement.

Show proof
theorem freeProCFiniteQuotientStageQMap_transition
    (φ : X → H) {U V : CompletedGroupAlgebraIndexInClass H C} (hUV : U ≤ V)
    (hsurjU : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ U))
    (hsurjV : Function.Surjective (freeProCFiniteQuotientStageHom (C := C) φ V))
    (q : CompletedGroupAlgebraQuotientInClass H C V) :
    freeProCFiniteQuotientStageQMap (C := C) φ U hsurjU
        ((OpenNormalSubgroupInClass.map
          (C := C) (G := H)
          (U := OrderDual.ofDual U) (V := OrderDual.ofDual V) hUV) q) =
      finiteFoxStageTargetQuotientMap
        (X := X) (freeProCFiniteQuotientStageKernel_antitone (C := C) φ hUV)
        (freeProCFiniteQuotientStageQMap (C := C) φ V hsurjV q)

The canonical quotient maps commute with quotient refinement.

Show proof
def freeProCFiniteQuotientStageKernelFamily
    (φ : X → H) (zcIndex : J → ZCCompletedGroupAlgebraIndex C H) :
    J → Subgroup (FreeGroup X) :=
  fun j => freeProCFiniteQuotientStageKernel (C := C) φ (zcIndex j).2

The finite relation subgroup family attached to a family of \(\mathbb{Z}_C\llbracket H\rrbracket\) stage indices.

instance freeProCFiniteQuotientStageKernelFamily_normal
    (φ : X → H) (zcIndex : J → ZCCompletedGroupAlgebraIndex C H) (j : J) :
    (freeProCFiniteQuotientStageKernelFamily (C := C) φ zcIndex j).Normal := by
  dsimp [freeProCFiniteQuotientStageKernelFamily]
  infer_instance

The finite-stage relation kernel is a normal subgroup.

theorem freeProCFiniteQuotientStageKernelFamily_antitone
    (φ : X → H) (zcIndex : J → ZCCompletedGroupAlgebraIndex C H)
    [Preorder J]
    (hzcIndex : ∀ {i j : J}, i ≤ j → zcIndex i ≤ zcIndex j) :
    ∀ {i j : J}, i ≤ j →
      freeProCFiniteQuotientStageKernelFamily (C := C) φ zcIndex j ≤
        freeProCFiniteQuotientStageKernelFamily (C := C) φ zcIndex i

The finite relation subgroup family is antitone under refinement of the \(\mathbb{Z}_C\llbracket H\rrbracket\) stages.

Show proof
def freeProCFiniteQuotientStageQMapFamily
    (φ : X → H) (zcIndex : J → ZCCompletedGroupAlgebraIndex C H)
    [∀ j, DiscreteTopology (CompletedGroupAlgebraQuotientInClass H C (zcIndex j).2)]
    (hφgen :
      ProCGroups.Generation.TopologicallyGenerates (G := H) (Set.range φ)) :
    ∀ j : J,
      CompletedGroupAlgebraQuotientInClass H C (zcIndex j).2 →*
        finiteFoxStageTargetQuotient
          (X := X) (freeProCFiniteQuotientStageKernelFamily (C := C) φ zcIndex j) :=
  fun j =>
    freeProCFiniteQuotientStageQMap (C := C) φ (zcIndex j).2
      (freeProCFiniteQuotientStageHom_surjective_of_topologicallyGenerates
        (C := C) φ (zcIndex j).2 hφgen)

The canonical \(H/U_j \to F/N_j\) comparison maps for a finite quotient stage family.

theorem freeProCFiniteQuotientStageQMapFamily_injective
    (φ : X → H) (zcIndex : J → ZCCompletedGroupAlgebraIndex C H)
    [∀ j, DiscreteTopology (CompletedGroupAlgebraQuotientInClass H C (zcIndex j).2)]
    (hφgen :
      ProCGroups.Generation.TopologicallyGenerates (G := H) (Set.range φ)) :
    ∀ j : J,
      Function.Injective
        (freeProCFiniteQuotientStageQMapFamily (C := C) φ zcIndex hφgen j)

The finite-quotient stage family map is injective.

Show proof
theorem freeProCFiniteQuotientStageQMapFamily_generator
    (φ : X → H) (zcIndex : J → ZCCompletedGroupAlgebraIndex C H)
    [∀ j, DiscreteTopology (CompletedGroupAlgebraQuotientInClass H C (zcIndex j).2)]
    (hφgen :
      ProCGroups.Generation.TopologicallyGenerates (G := H) (Set.range φ))
    (j : J) (x : X) :
    freeProCFiniteQuotientStageQMapFamily (C := C) φ zcIndex hφgen j
        (QuotientGroup.mk (φ x)) =
      QuotientGroup.mk'
        (freeProCFiniteQuotientStageKernelFamily (C := C) φ zcIndex j)
        (FreeGroup.of x)

The finite-quotient stage family sends each generator to its quotient-stage image.

Show proof
theorem freeProCFiniteQuotientStageQMapFamily_transition
    (φ : X → H) (zcIndex : J → ZCCompletedGroupAlgebraIndex C H)
    [Preorder J]
    (hzcIndex : ∀ {i j : J}, i ≤ j → zcIndex i ≤ zcIndex j)
    [∀ j, DiscreteTopology (CompletedGroupAlgebraQuotientInClass H C (zcIndex j).2)]
    (hφgen :
      ProCGroups.Generation.TopologicallyGenerates (G := H) (Set.range φ)) :
    ∀ {i j : J} (hij : i ≤ j),
      ∀ q : CompletedGroupAlgebraQuotientInClass H C (zcIndex j).2,
        freeProCFiniteQuotientStageQMapFamily (C := C) φ zcIndex hφgen i
            ((OpenNormalSubgroupInClass.map
              (C := C) (G := H)
              (U := OrderDual.ofDual (zcIndex i).2)
              (V := OrderDual.ofDual (zcIndex j).2)
              (hzcIndex hij).2) q) =
          finiteFoxStageTargetQuotientMap
            (X := X)
            (freeProCFiniteQuotientStageKernelFamily_antitone
              (C := C) φ zcIndex hzcIndex hij)
            (freeProCFiniteQuotientStageQMapFamily (C := C) φ zcIndex hφgen j q)

The canonical comparison maps commute with refinement of the \(\mathbb{Z}_C\llbracket H\rrbracket\) stage family.

Show proof
def freeProCZCBifilteredFiniteQuotientStageCoeffMap
    (φ : X → H) (nstage : J → ℕ) [∀ j, Fact (0 < nstage j)]
    (zcIndex : J → ZCCompletedGroupAlgebraIndex ProC.finiteQuotientClass H)
    (hmod : ∀ j : J, nstage j ∣ (zcIndex j).1.modulus)
    [∀ j, DiscreteTopology
      (CompletedGroupAlgebraQuotientInClass H ProC.finiteQuotientClass (zcIndex j).2)]
    (hφgen :
      ProCGroups.Generation.TopologicallyGenerates (G := H) (Set.range φ))
    (j : J) :
    ZCCompletedGroupAlgebra ProC.finiteQuotientClass H →+*
      finiteFoxStageTargetGroupAlgebra
        (X := X)
        (freeProCFiniteQuotientStageKernelFamily
          (C := ProC.finiteQuotientClass) φ zcIndex j)
        (nstage j) :=
  zcCompletedGroupAlgebraBifilteredStageCoeffMap
    (ProC := ProC) (X := X) (H := H)
    (freeProCFiniteQuotientStageKernelFamily
      (C := ProC.finiteQuotientClass) φ zcIndex)
    nstage zcIndex hmod
    (freeProCFiniteQuotientStageQMapFamily
      (C := ProC.finiteQuotientClass) φ zcIndex hφgen) j

The completed-to-finite coefficient map for the actual finite quotient stages \(F_X \to H/U_j\).

def freeProCZCBifilteredAllFiniteQuotientStageCoeffMap
    (φ : X → H)
    (hφgen :
      ProCGroups.Generation.TopologicallyGenerates (G := H) (Set.range φ))
    (j : ZCCompletedGroupAlgebraIndex ProC.finiteQuotientClass H) :
    ZCCompletedGroupAlgebra ProC.finiteQuotientClass H →+*
      finiteFoxStageTargetGroupAlgebra
        (X := X)
        (freeProCFiniteQuotientStageKernelFamily
          (C := ProC.finiteQuotientClass) φ
          (id : ZCCompletedGroupAlgebraIndex ProC.finiteQuotientClass H →
            ZCCompletedGroupAlgebraIndex ProC.finiteQuotientClass H) j)
        j.1.modulus := by
  letI :
      ∀ j : ZCCompletedGroupAlgebraIndex ProC.finiteQuotientClass H,
        Fact (0 < j.1.modulus) :=
    fun j => ProCIntegerIndex.positiveFact j.1
  letI :
      ∀ j : ZCCompletedGroupAlgebraIndex ProC.finiteQuotientClass H,
        DiscreteTopology
          (CompletedGroupAlgebraQuotientInClass H ProC.finiteQuotientClass j.2) :=
    fun j =>
      QuotientGroup.discreteTopology
        (ProCGroups.openNormalSubgroup_isOpen (G := H)
          ((OrderDual.ofDual j.2).1 : OpenNormalSubgroup H))
  exact
    freeProCZCBifilteredFiniteQuotientStageCoeffMap
      (ProC := ProC) (X := X) (H := H) φ (fun j => j.1.modulus)
      (id : ZCCompletedGroupAlgebraIndex ProC.finiteQuotientClass H →
        ZCCompletedGroupAlgebraIndex ProC.finiteQuotientClass H)
      (fun _ => dvd_rfl) hφgen j

The completed-to-finite coefficient map for the standard all-stage family \(j\), a \(\mathbb{Z}_C\)-completed group-algebra index for \(C\) and \(H\), with finite relation subgroup \(\ker(F_X \to H/U_j)\) and the specified coefficient modulus.

theorem zcCompletedGroupAlgebraAllStageQuotientMap_identity_basis_of_isProCGroup
    [ProCGroups.FiniteGroupClass.ContainsTrivialQuotients C]
    (hH : IsProCGroup C H) :
    HasIdentityQuotientKernelNeighbourhoodBasis
      (Y := H)
      (fun j : ZCCompletedGroupAlgebraIndex C H =>
        openNormalSubgroupInClassProj (C := C) (G := H) j.2)

The full family of quotient maps \(H \to H/U\), indexed by the \(\mathbb{Z}_C\)-completed group-algebra indices for \(C\) and \(H\), has identity-neighborhood kernels for any pro-\(C\) group \(H\). The coefficient coordinate of the index is unspecified here; it is filled with the terminal coefficient quotient.

Show proof