FoxDifferential.Completed.FiniteStage.BoundarySubgroups

5 Theorem | 2 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 finiteFoxStageSemidirectBoundaryCycleSubgroup [Fintype X] :
    Subgroup (FiniteFoxStageSemidirect (X := X) N n) where
  carrier := finiteFoxStageSemidirectBoundaryCycleSet (X := X) N n
  one_mem' := by
    constructor
    · simp only [FiniteFoxStageSemidirect.one_right]
    · exact (finiteFoxStageBoundaryCycleSubmodule (X := X) N n).zero_mem
  mul_mem' := by
    intro y z hy hz
    rcases hy with ⟨hyright, hyleft⟩
    rcases hz with ⟨hzright, hzleft⟩
    constructor
    · simp only [FiniteFoxStageSemidirect.mul_right, hyright, hzright, mul_one]
    · rw [FiniteFoxStageSemidirect.mul_left, hyright]
      have hone :
          (MonoidAlgebra.of (ModNCompletedCoeff n)
            (finiteFoxStageTargetQuotient (X := X) N) 1 :
              finiteFoxStageTargetGroupAlgebra (X := X) N n) = 1 := by
        simp only [MonoidAlgebra.of, MonoidAlgebra.single, MonoidHom.coe_mk, OneHom.coe_mk, MonoidAlgebra.one_def]
      rw [hone, one_smul]
      exact (finiteFoxStageBoundaryCycleSubmodule (X := X) N n).add_mem hyleft hzleft
  inv_mem' := by
    intro y hy
    rcases hy with ⟨hyright, hyleft⟩
    constructor
    · simp only [FiniteFoxStageSemidirect.inv_right, hyright, inv_one]
    · rw [FiniteFoxStageSemidirect.inv_left, hyright, inv_one]
      have hone :
          (MonoidAlgebra.of (ModNCompletedCoeff n)
            (finiteFoxStageTargetQuotient (X := X) N) 1 :
              finiteFoxStageTargetGroupAlgebra (X := X) N n) = 1 := by
        simp only [MonoidAlgebra.of, MonoidAlgebra.single, MonoidHom.coe_mk, OneHom.coe_mk, MonoidAlgebra.one_def]
      rw [hone, one_smul]
      exact (finiteFoxStageBoundaryCycleSubmodule (X := X) N n).neg_mem hyleft

Finite semidirect boundary cycles form a subgroup.

theorem finiteFoxStageSemidirectBoundaryCycleSubgroup_coe [Fintype X] :
    ((finiteFoxStageSemidirectBoundaryCycleSubgroup (X := X) N n :
        Subgroup (FiniteFoxStageSemidirect (X := X) N n)) :
          Set (FiniteFoxStageSemidirect (X := X) N n)) =
      finiteFoxStageSemidirectBoundaryCycleSet (X := X) N n

The boundary-cycle subgroup of the finite Fox semidirect product has the boundary-cycle set as its underlying set.

Show proof
theorem finiteFoxStageSemidirectSourceKernelDerivativeSet_iff
    {y : FiniteFoxStageSemidirect (X := X) N n} :
    y ∈ finiteFoxStageSemidirectSourceKernelDerivativeSet (X := X) N n ↔
      y.right = 1 ∧
        y.left ∈ finiteFoxStageSourceKernelDerivativeSet (X := X) N n

Source-kernel semidirect points are exactly points with right component \(1\) and left component in the source-kernel derivative subgroup.

Show proof
def finiteFoxStageSemidirectSourceKernelDerivativeSubgroup :
    Subgroup (FiniteFoxStageSemidirect (X := X) N n) where
  carrier :=
    { y | y.right = 1 ∧
        y.left ∈ finiteFoxStageSourceKernelDerivativeAddSubgroup (X := X) N n }
  one_mem' := by
    exactrfl, (finiteFoxStageSourceKernelDerivativeAddSubgroup (X := X) N n).zero_mem⟩
  mul_mem' := by
    intro y z hy hz
    rcases hy with ⟨hyright, hyleft⟩
    rcases hz with ⟨hzright, hzleft⟩
    constructor
    · simp only [FiniteFoxStageSemidirect.mul_right, hyright, hzright, mul_one]
    · rw [FiniteFoxStageSemidirect.mul_left, hyright]
      have hone :
          (MonoidAlgebra.of (ModNCompletedCoeff n)
            (finiteFoxStageTargetQuotient (X := X) N) 1 :
              finiteFoxStageTargetGroupAlgebra (X := X) N n) = 1 := by
        simp only [MonoidAlgebra.of, MonoidAlgebra.single, MonoidHom.coe_mk, OneHom.coe_mk, MonoidAlgebra.one_def]
      rw [hone, one_smul]
      exact
        (finiteFoxStageSourceKernelDerivativeAddSubgroup (X := X) N n).add_mem hyleft hzleft
  inv_mem' := by
    intro y hy
    rcases hy with ⟨hyright, hyleft⟩
    constructor
    · simp only [FiniteFoxStageSemidirect.inv_right, hyright, inv_one]
    · rw [FiniteFoxStageSemidirect.inv_left, hyright, inv_one]
      have hone :
          (MonoidAlgebra.of (ModNCompletedCoeff n)
            (finiteFoxStageTargetQuotient (X := X) N) 1 :
              finiteFoxStageTargetGroupAlgebra (X := X) N n) = 1 := by
        simp only [MonoidAlgebra.of, MonoidAlgebra.single, MonoidHom.coe_mk, OneHom.coe_mk, MonoidAlgebra.one_def]
      rw [hone, one_smul]
      exact (finiteFoxStageSourceKernelDerivativeAddSubgroup (X := X) N n).neg_mem hyleft

@[simp]

Finite source-kernel derivative semidirect points form a subgroup.

theorem finiteFoxStageSemidirectSourceKernelDerivativeSubgroup_coe :
    ((finiteFoxStageSemidirectSourceKernelDerivativeSubgroup (X := X) N n :
        Subgroup (FiniteFoxStageSemidirect (X := X) N n)) :
          Set (FiniteFoxStageSemidirect (X := X) N n)) =
      finiteFoxStageSemidirectSourceKernelDerivativeSet (X := X) N n

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

Show proof
theorem finiteFoxStageSemidirectSourceKernelDerivativeSubgroup_le_boundaryCycleSubgroup
    [Fintype X] :
    finiteFoxStageSemidirectSourceKernelDerivativeSubgroup (X := X) N n ≤
      finiteFoxStageSemidirectBoundaryCycleSubgroup (X := X) N n

The finite source-kernel derivative subgroup lies inside finite semidirect boundary cycles.

Show proof
theorem finiteFoxStageSemiBoundaryCycleSubgroup_le_sourceKernelDerivSubgroup_iff_coord
    [Fintype X] :
    finiteFoxStageSemidirectBoundaryCycleSubgroup (X := X) N n ≤
        finiteFoxStageSemidirectSourceKernelDerivativeSubgroup (X := X) N n ↔
      finiteFoxStageBoundaryCyclesCoveredBySourceKernel (X := X) N n

Semidirect finite-stage coverage is equivalently subgroup inclusion.

Show proof