FoxDifferential.Completed.FreeProC.Density

18 Theorem | 4 Definition

This module develops the Fox-differential part of the theory. It records the formulas that connect generators, boundaries, Jacobians, and completed coordinates.

import
Imported by

Declarations

theorem subset_closure_of_open_neighbourhood_approximation
    (happrox :
      ∀ y : Y, y ∈ T → ∀ U : Set Y, IsOpen U → y ∈ U →
        ∃ s : Y, s ∈ S ∧ s ∈ U) :
    T ⊆ closure S

A direct neighborhood approximation criterion for set-theoretic closure. This is the form used when a finite-stage argument has already produced an algebraic point of S inside every open neighborhood of a boundary point.

Show proof
def HasLeftOpenSubgroupNeighbourhoodBasis (Y : Type u) [Group Y] [TopologicalSpace Y] : Prop :=
  ∀ (y : Y) (U : Set Y), IsOpen U → y ∈ U →
    ∃ V : Subgroup Y, IsOpen ((V : Subgroup Y) : Set Y) ∧
      ∀ z : Y, z ∈ V → y * z ∈ U

Left open subgroup neighborhood basis, expressed as a proposition rather than a structure. For every neighborhood \(U\) of \(y\), one can find an open subgroup \(V\) such that the left coset \(yV\) is contained in \(U\). This is the topological input used to pass from finite or open-subgroup approximations to ordinary closure.

def HasLeftOpenNormalSubgroupNeighbourhoodBasis
    (Y : Type u) [Group Y] [TopologicalSpace Y] : Prop :=
  ∀ (y : Y) (U : Set Y), IsOpen U → y ∈ U →
    ∃ V : Subgroup Y, V.Normal ∧ IsOpen ((V : Subgroup Y) : Set Y) ∧
      ∀ z : Y, z ∈ V → y * z ∈ U

This is the normal-subgroup version of the left open-subgroup neighborhood basis: in a profinite group, every identity neighborhood can be refined by an open normal subgroup.

theorem HasLeftOpenNormalSubgroupNeighbourhoodBasis.to_subgroup_basis
    (hbasis : HasLeftOpenNormalSubgroupNeighbourhoodBasis Y) :
    HasLeftOpenSubgroupNeighbourhoodBasis Y

The normal-subgroup basis implies the subgroup basis.

Show proof
theorem subset_closure_of_openSubgroup_approximation
    (hbasis : HasLeftOpenSubgroupNeighbourhoodBasis Y)
    (happrox :
      ∀ y : Y, y ∈ T → ∀ V : Subgroup Y,
        IsOpen ((V : Subgroup Y) : Set Y) →
          ∃ s : Y, s ∈ S ∧ y⁻¹ * s ∈ V) :
    T ⊆ closure S

Closure criterion using open-subgroup approximations. It is enough to approximate each y \(\in\) T modulo every open subgroup V, in the sense that for some s \(\in\) S the correction \(y{}^{-1} * s\) lies in V.

Show proof
theorem subset_closure_of_openNormalSubgroup_approximation
    (hbasis : HasLeftOpenNormalSubgroupNeighbourhoodBasis Y)
    (happrox :
      ∀ y : Y, y ∈ T → ∀ V : Subgroup Y,
        V.Normal → IsOpen ((V : Subgroup Y) : Set Y) →
          ∃ s : Y, s ∈ S ∧ y⁻¹ * s ∈ V) :
    T ⊆ closure S

The completed Fox graph or boundary-cycle set lies in the required closed generated submodule by finite-stage separation.

Show proof
theorem mem_closure_of_openSubgroup_approximation
    (hbasis : HasLeftOpenSubgroupNeighbourhoodBasis Y)
    {y : Y} (_hy : y ∈ T)
    (happrox :
      ∀ V : Subgroup Y, IsOpen ((V : Subgroup Y) : Set Y) →
        ∃ s : Y, s ∈ S ∧ y⁻¹ * s ∈ V) :
    y ∈ closure S

Coset approximation gives a pointwise closure statement.

Show proof
def HasLeftQuotientKernelNeighbourhoodBasis
    {J : Type v} {Q : J → Type*} [∀ j, Group (Q j)]
    (π : ∀ j : J, Y →* Q j) : Prop :=
  ∀ (y : Y) (U : Set Y), IsOpen U → y ∈ U →
    ∃ j : J, ∀ z : Y, z ∈ (π j).ker → y * z ∈ U

A left neighborhood basis expressed directly by kernels of quotient maps. This is the form produced by finite-stage maps: every open neighborhood of \(y\) contains a left coset \(y\ker(\pi_j)\).

theorem subset_closure_of_quotientKernel_approximation
    {J : Type v} {Q : J → Type*} [∀ j, Group (Q j)]
    (π : ∀ j : J, Y →* Q j)
    (hbasis : HasLeftQuotientKernelNeighbourhoodBasis (Y := Y) π)
    (happrox :
      ∀ y : Y, y ∈ T → ∀ j : J,
        ∃ s : Y, s ∈ S ∧ π j s = π j y) :
    T ⊆ closure S

If quotient kernels form a left neighborhood basis, then equality at every quotient stage gives closure. This is the abstract topology step for the remaining Crowell density theorem: finite quotient exactness supplies \(s\in S\) with \(\pi_j s = \pi_j y\); the quotient-kernel basis turns this into ordinary topological approximation.

Show proof
def freeProCZCCompletedFoxSemidirectKernelWordPoint (φ : X → H) (w : FreeGroup X) :
    ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H :=
  { left :=
      zcFreeGroupFoxDerivativeVector ProC.finiteQuotientClass (FreeGroup.lift φ) w,
    right := (1 : H) }

The semidirect point \((D w, 1)\) attached to an abstract free-group kernel-word candidate. The word may or may not actually lie in the kernel; kernel membership is recorded separately by the corresponding kernel-cycle-set lemma.

theorem freeProCZCCompletedFoxSemidirectKernelWordPoint_left
    (φ : X → H) (w : FreeGroup X) :
    (freeProCZCCompletedFoxSemidirectKernelWordPoint (ProC := ProC) φ w).left =
      zcFreeGroupFoxDerivativeVector ProC.finiteQuotientClass (FreeGroup.lift φ) w

The left coordinate of a completed Fox semidirect kernel-word point is its completed Fox derivative vector.

Show proof
theorem freeProCZCCompletedFoxSemidirectKernelWordPoint_right
    (φ : X → H) (w : FreeGroup X) :
    (freeProCZCCompletedFoxSemidirectKernelWordPoint (ProC := ProC) φ w).right = 1

The right coordinate of a completed Fox semidirect kernel-word point is the identity element.

Show proof
theorem freeProCZCCompletedFoxSemidirectKernelWordPoint_mem_kernelCycleSet
    (φ : X → H) {w : FreeGroup X} (hw : FreeGroup.lift φ w = 1) :
    freeProCZCCompletedFoxSemidirectKernelWordPoint (ProC := ProC) φ w ∈
      freeProCZCCompletedFoxSemidirectKernelCycleSet (ProC := ProC) φ

A genuine kernel word gives an element of the algebraic kernel-word cycle set.

Show proof
theorem mem_freeProCZCCompletedFoxSemidirectKernelCycleSet_iff
    (φ : X → H)
    (y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H) :
    y ∈ freeProCZCCompletedFoxSemidirectKernelCycleSet (ProC := ProC) φ ↔
      ∃ w : FreeGroup X, FreeGroup.lift φ w = 1 ∧
        y = freeProCZCCompletedFoxSemidirectKernelWordPoint (ProC := ProC) φ w

Membership in the completed Fox semidirect kernel-cycle set is equivalent to vanishing of the corresponding finite-stage coordinate.

Show proof
theorem freeProCZCCompletedFoxSemidirectBoundaryCycleSet_mk_iff
    [Fintype X] (φ : X → H)
    (v : ZCFreeFoxCoordinates ProC.finiteQuotientClass (X := X) (H := H)) :
    ({ left := v, right := (1 : H) } :
        ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H) ∈
      freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ ↔
        zcFreeGroupFoxBoundary ProC.finiteQuotientClass (FreeGroup.lift φ) v = 0

Boundary-cycle membership for a point of the form \((v,1)\).

Show proof
theorem freeProCZCFoxBoundaryCycles_subset_closure_kernelCycleSet_of_quotKernel_approx
    [Fintype X] (φ : X → H)
    {J : Type v} {Q : J → Type*} [∀ j, Group (Q j)]
    (π : ∀ j : J,
      ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H →* Q j)
    (hbasis :
      HasLeftQuotientKernelNeighbourhoodBasis
        (Y := ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H) π)
    (happrox :
      ∀ y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H,
        y ∈ freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ →
          ∀ j : J,
            ∃ w : FreeGroup X,
              FreeGroup.lift φ w = 1 ∧
                π j (freeProCZCCompletedFoxSemidirectKernelWordPoint
                    (ProC := ProC) φ w) = π j y) :
    freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ ⊆
      closure (freeProCZCCompletedFoxSemidirectKernelCycleSet (ProC := ProC) φ)

Quotient-kernel approximation form of the completed Fox density statement. This is the finite-stage attack surface for the remaining density theorem: once finite quotient exactness produces, for every finite quotient stage j, a kernel word whose semidirect point has the same j-th quotient image as the boundary cycle, the completed density statement follows.

Show proof
theorem freeProCZCFoxBoundaryCycles_subset_closure_kernelCycleSet_of_open_neighbourhood_approx
    [Fintype X] (φ : X → H)
    (happrox :
      ∀ y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H,
        y ∈ freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ →
          ∀ U : Set (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H),
            IsOpen U → y ∈ U →
              ∃ w : FreeGroup X,
                FreeGroup.lift φ w = 1 ∧
                freeProCZCCompletedFoxSemidirectKernelWordPoint (ProC := ProC) φ w ∈ U) :
    freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ ⊆
      closure (freeProCZCCompletedFoxSemidirectKernelCycleSet (ProC := ProC) φ)

Neighborhood approximation form of the completed Fox density statement. For every boundary cycle and every open neighborhood of it in the completed semidirect product, there is a genuine kernel word whose point \((D w, 1)\) lies in that neighborhood. This proves the set-level density statement used by the Crowell middle exactness theorem.

Show proof
theorem freeProCZCFoxBoundaryCycles_subset_closure_kernelCycleSet_of_openSubgroup_approx
    [Fintype X] (φ : X → H)
    (hbasis :
      HasLeftOpenSubgroupNeighbourhoodBasis
        (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H))
    (happrox :
      ∀ y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H,
        y ∈ freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ →
          ∀ V : Subgroup (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H),
            IsOpen ((V : Subgroup
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) : Set
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) →
              ∃ w : FreeGroup X,
                FreeGroup.lift φ w = 1 ∧
                y⁻¹ * freeProCZCCompletedFoxSemidirectKernelWordPoint
                    (ProC := ProC) φ w ∈ V) :
    freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ ⊆
      closure (freeProCZCCompletedFoxSemidirectKernelCycleSet (ProC := ProC) φ)

Open-subgroup approximation form of the completed Fox density statement. This is the intended entry point for finite quotient arguments: for every open subgroup V of the completed Fox semidirect group, approximate a boundary cycle y by a kernel-word cycle point modulo the left coset y V.

Show proof
theorem freeProCZCFoxBoundaryCycles_subset_closure_kernelCycleSet_of_openNormalSubgroup_approx
    [Fintype X] (φ : X → H)
    (hbasis :
      HasLeftOpenNormalSubgroupNeighbourhoodBasis
        (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H))
    (happrox :
      ∀ y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H,
        y ∈ freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ →
          ∀ V : Subgroup (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H),
            V.Normal →
            IsOpen ((V : Subgroup
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) : Set
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) →
              ∃ w : FreeGroup X,
                FreeGroup.lift φ w = 1 ∧
                y⁻¹ * freeProCZCCompletedFoxSemidirectKernelWordPoint
                    (ProC := ProC) φ w ∈ V) :
    freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ ⊆
      closure (freeProCZCCompletedFoxSemidirectKernelCycleSet (ProC := ProC) φ)

Open-normal-subgroup approximation form of the completed Fox density statement.

Show proof
theorem freeProCZCFoxBoundaryCycles_subset_closedGenTarget_of_openSubgroup_approx
    [Fintype X] (φ : X → H)
    (hbasis :
      HasLeftOpenSubgroupNeighbourhoodBasis
        (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H))
    (happrox :
      ∀ y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H,
        y ∈ freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ →
          ∀ V : Subgroup (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H),
            IsOpen ((V : Subgroup
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) : Set
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) →
              ∃ w : FreeGroup X,
                FreeGroup.lift φ w = 1 ∧
                y⁻¹ * freeProCZCCompletedFoxSemidirectKernelWordPoint
                    (ProC := ProC) φ w ∈ V) :
    freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ ⊆
      ((freeProCZCCompletedFoxSemidirectClosedGeneratedTarget
        (ProC := ProC) φ : Subgroup
          (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) : Set
          (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H))

Open-subgroup approximation places every completed boundary cycle inside the closed generated Fox graph target.

Show proof
theorem freeProCZCFoxBoundaryCycles_subset_closedGenTarget_of_openNormalSubgroup_approx
    [Fintype X] (φ : X → H)
    (hbasis :
      HasLeftOpenNormalSubgroupNeighbourhoodBasis
        (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H))
    (happrox :
      ∀ y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H,
        y ∈ freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ →
          ∀ V : Subgroup (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H),
            V.Normal →
            IsOpen ((V : Subgroup
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) : Set
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) →
              ∃ w : FreeGroup X,
                FreeGroup.lift φ w = 1 ∧
                y⁻¹ * freeProCZCCompletedFoxSemidirectKernelWordPoint
                    (ProC := ProC) φ w ∈ V) :
    freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ ⊆
      ((freeProCZCCompletedFoxSemidirectClosedGeneratedTarget
        (ProC := ProC) φ : Subgroup
          (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) : Set
          (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H))

Open-normal-subgroup approximation places every completed boundary cycle inside the closed generated Fox graph target.

Show proof
theorem closure_freeProCZCFoxSemiKernelCycleSet_eq_boundaryCycleSet_of_openSubgroup_approx
    [Fintype X] [T1Space H]
    [TopologicalSpace (ZCCompletedGroupAlgebra ProC.finiteQuotientClass H)]
    [T1Space (ZCCompletedGroupAlgebra ProC.finiteQuotientClass H)]
    (φ : X → H)
    (hleft :
      Continuous
        (fun y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H => y.left))
    (hright :
      Continuous
        (fun y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H => y.right))
    (hboundary :
      Continuous
        (zcFreeGroupFoxBoundary ProC.finiteQuotientClass (FreeGroup.lift φ)))
    (hbasis :
      HasLeftOpenSubgroupNeighbourhoodBasis
        (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H))
    (happrox :
      ∀ y : ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H,
        y ∈ freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ →
          ∀ V : Subgroup (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H),
            IsOpen ((V : Subgroup
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) : Set
              (ZCCompletedFoxSemidirect ProC.finiteQuotientClass X H)) →
              ∃ w : FreeGroup X,
                FreeGroup.lift φ w = 1 ∧
                y⁻¹ * freeProCZCCompletedFoxSemidirectKernelWordPoint
                    (ProC := ProC) φ w ∈ V) :
    closure (freeProCZCCompletedFoxSemidirectKernelCycleSet (ProC := ProC) φ) =
      freeProCZCCompletedFoxSemidirectBoundaryCycleSet (ProC := ProC) φ

Under the standard continuity inputs, open-subgroup approximation upgrades the one-sided closure statement to the equality between boundary cycles and the closure of kernel-word cycles.

Show proof