FoxDifferential.Completed.FiniteStage.BoundaryCycles

9 Theorem | 6 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

def finiteFoxStageBoundaryCycleSubmodule [Fintype X] :
    Submodule (finiteFoxStageTargetGroupAlgebra (X := X) N n)
      (finiteFoxStageCoordinateVector (X := X) N n) :=
  LinearMap.ker (finiteFoxStageFoxBoundary (X := X) N n)

The finite-stage Fox boundary-cycle submodule \(\ker \partial\).

theorem mem_finiteFoxStageBoundaryCycleSubmodule [Fintype X]
    {v : finiteFoxStageCoordinateVector (X := X) N n} :
    v ∈ finiteFoxStageBoundaryCycleSubmodule (X := X) N n ↔
      finiteFoxStageFoxBoundary (X := X) N n v = 0

Membership in the finite-stage boundary-cycle object is characterized by the corresponding boundary-vanishing condition.

Show proof
def finiteFoxStageSourceKernelDerivativeSet :
    Set (finiteFoxStageCoordinateVector (X := X) N n) :=
  { v | ∃ q : FreeGroup X ⧸ finiteFoxCommutatorPowerSubgroup (F := FreeGroup X) N n,
      finiteFoxCommutatorPowerQuotientMapToNormalQuotient (F := FreeGroup X) N n q = 1 ∧
        finiteFoxStageQuotientDerivativeVector (X := X) N n q = v }

Quotient-level source-kernel derivatives in the finite stage. These are the finite-stage relation cycles coming from the kernel of \(F/[N,N]N^n \to F/N\).

def finiteFoxStageKernelWordDerivativeSet :
    Set (finiteFoxStageCoordinateVector (X := X) N n) :=
  { v | ∃ w : FreeGroup X,
      w ∈ N ∧ finiteFoxStageDerivativeVector (X := X) N n w = v }

Word-level kernel derivatives in the finite stage. This is the algebraic form obtained from actual relation words w \(\in\) N.

theorem finiteFoxStageCoefficient_eq_one_of_mem
    {w : FreeGroup X} (hw : w ∈ N) :
    finiteFoxStageCoefficient (X := X) N n w = 1

A word lying in the normal subgroup \(N\) has finite-stage coefficient equal to \(1\) in the quotient by \(N\).

Show proof
theorem finiteFoxStageQuotientCoefficient_eq_one_of_kernel
    {q : FreeGroup X ⧸ finiteFoxCommutatorPowerSubgroup (F := FreeGroup X) N n}
    (hq : finiteFoxCommutatorPowerQuotientMapToNormalQuotient (F := FreeGroup X) N n q = 1) :
    finiteFoxStageQuotientCoefficient (X := X) N n q = 1

For a kernel element, the finite Fox-stage quotient coefficient evaluates to one after coefficient change.

Show proof
def finiteFoxStageSourceKernelDerivativeAddSubgroup :
    AddSubgroup (finiteFoxStageCoordinateVector (X := X) N n) where
  carrier := finiteFoxStageSourceKernelDerivativeSet (X := X) N n
  zero_mem' := by
    refine ⟨1, ?_, ?_⟩
    · simp only [map_one]
    · simp only [finiteFoxStageQuotientDerivativeVector_one]
  add_mem' := by
    intro a b ha hb
    rcases ha with ⟨q, hq, hqa⟩
    rcases hb with ⟨r, hr, hrb⟩
    refine ⟨q * r, ?_, ?_⟩
    · rw [map_mul, hq, hr, one_mul]
    · rw [finiteFoxStageQuotientDerivativeVector_mul]
      rw [finiteFoxStageQuotientCoefficient_eq_one_of_kernel (X := X) N n hq]
      simp only [hqa, hrb, one_smul]
  neg_mem' := by
    intro a ha
    rcases ha with ⟨q, hq, hqa⟩
    refine ⟨q⁻¹, ?_, ?_⟩
    · rw [map_inv, hq]
      simp only [inv_one]
    · rw [IsCrossedDifferential.inv
          (finiteFoxStageQuotientDerivativeVector_isCrossedDifferential (X := X) N n)]
      have hcoeff :
          finiteFoxStageQuotientCoefficient (X := X) N n q⁻¹ = 1 := by
        apply finiteFoxStageQuotientCoefficient_eq_one_of_kernel (X := X) N n
        rw [map_inv, hq]
        simp only [inv_one]
      rw [hcoeff]
      simp only [hqa, one_smul]

@[simp]

Source-kernel derivatives form an additive subgroup of the finite coordinate module.

theorem finiteFoxStageSourceKernelDerivativeAddSubgroup_coe :
    ((finiteFoxStageSourceKernelDerivativeAddSubgroup (X := X) N n :
        AddSubgroup (finiteFoxStageCoordinateVector (X := X) N n)) :
          Set (finiteFoxStageCoordinateVector (X := X) N n)) =
      finiteFoxStageSourceKernelDerivativeSet (X := X) N n

The finite-stage source-kernel derivative additive subgroup coerces to its defining carrier.

Show proof
theorem finiteFoxStageSourceKernelDerivativeSet_eq_kernelWordDerivativeSet :
    finiteFoxStageSourceKernelDerivativeSet (X := X) N n =
      finiteFoxStageKernelWordDerivativeSet (X := X) N n

The quotient-level and word-level descriptions of finite-stage source-kernel derivatives coincide.

Show proof
def finiteFoxStageKernelWordDerivativeAddSubgroup :
    AddSubgroup (finiteFoxStageCoordinateVector (X := X) N n) :=
  finiteFoxStageSourceKernelDerivativeAddSubgroup (X := X) N n

@[simp]

Word-level kernel derivatives form an additive subgroup, transported from the quotient-level source-kernel subgroup.

theorem finiteFoxStageKernelWordDerivativeAddSubgroup_coe :
    ((finiteFoxStageKernelWordDerivativeAddSubgroup (X := X) N n :
        AddSubgroup (finiteFoxStageCoordinateVector (X := X) N n)) :
          Set (finiteFoxStageCoordinateVector (X := X) N n)) =
      finiteFoxStageKernelWordDerivativeSet (X := X) N n

The finite-stage kernel-word derivative additive subgroup coerces to its defining carrier.

Show proof
theorem finiteFoxStageSourceKernelDerivativeSet_subset_boundaryCycleSubmodule
    [Fintype X] :
    finiteFoxStageSourceKernelDerivativeSet (X := X) N n ⊆
      (finiteFoxStageBoundaryCycleSubmodule (X := X) N n :
        Set (finiteFoxStageCoordinateVector (X := X) N n))

Every finite-stage source-kernel derivative is a finite Fox boundary cycle.

Show proof
def finiteFoxStageBoundaryCyclesCoveredBySourceKernel [Fintype X] : Prop :=
  (finiteFoxStageBoundaryCycleSubmodule (X := X) N n :
      Set (finiteFoxStageCoordinateVector (X := X) N n)) ⊆
    finiteFoxStageSourceKernelDerivativeSet (X := X) N n

The finite-stage exactness target: every finite Fox boundary cycle is represented by a source-kernel derivative in \(F/[N,N]N^n\).

theorem finiteFoxStageBoundaryCyclesCoveredBySourceKernel_iff_words
    [Fintype X] :
    finiteFoxStageBoundaryCyclesCoveredBySourceKernel (X := X) N n ↔
      (finiteFoxStageBoundaryCycleSubmodule (X := X) N n :
          Set (finiteFoxStageCoordinateVector (X := X) N n)) ⊆
        finiteFoxStageKernelWordDerivativeSet (X := X) N n

The finite-stage exactness target is equivalent to the formulation using actual kernel words.

Show proof
theorem finiteFoxStageSourceKernelDerivativeSet_eq_boundaryCycleSubmodule_iff
    [Fintype X] :
    finiteFoxStageSourceKernelDerivativeSet (X := X) N n =
        (finiteFoxStageBoundaryCycleSubmodule (X := X) N n :
          Set (finiteFoxStageCoordinateVector (X := X) N n)) ↔
      finiteFoxStageBoundaryCyclesCoveredBySourceKernel (X := X) N n

The finite-stage source-kernel derivative set is equal to \(\ker \partial\) exactly when the reverse coverage inclusion holds.

Show proof