FoxDifferential.Completed.FiniteStage.Stage.Semidirect

9 Theorem | 3 Definition | 4 Abbreviation | 1 Structure | 4 Instance

This module sets up the finite-stage and inverse-limit description of the construction. It records the stage maps, projections, and comparison lemmas used to pass back to the completed object.

import
Imported by

Declarations

abbrev finiteFoxStageTargetQuotient : Type u :=
  FreeGroup X ⧸ N

The finite-stage target quotient \(F/N\).

abbrev finiteFoxStageTargetGroupAlgebra : Type u :=
  MonoidAlgebra (ModNCompletedCoeff n) (finiteFoxStageTargetQuotient (X := X) N)

The finite-stage target group algebra \((\mathbb{Z}/n\mathbb{Z})[F/N]\).

abbrev finiteFoxStageSourceGroupAlgebra : Type u :=
  MonoidAlgebra (ModNCompletedCoeff n)
    (FreeGroup X ⧸ finiteFoxCommutatorPowerSubgroup (F := FreeGroup X) N n)

The finite-stage source group algebra \((\mathbb{Z}/n\mathbb{Z})[F/[N,N]N^n]\).

def finiteFoxStageGroupAlgebraMapKernelIdeal :
    Ideal (finiteFoxStageSourceGroupAlgebra (X := X) N n) :=
  RingHom.ker (finiteFoxCommutatorPowerGroupAlgebraMap (F := FreeGroup X) N n)

The finite-stage kernel \(K_j\) of \((\mathbb{Z}/n\mathbb{Z})[F/[N,N]N^n] \to (\mathbb{Z}/n\mathbb{Z})[F/N]\).

theorem mem_finiteFoxStageGroupAlgebraMapKernelIdeal
    {N : Subgroup (FreeGroup X)} [N.Normal] {n : ℕ}
    {x : finiteFoxStageSourceGroupAlgebra (X := X) N n} :
    x ∈ finiteFoxStageGroupAlgebraMapKernelIdeal (X := X) N n ↔
      finiteFoxCommutatorPowerGroupAlgebraMap (F := FreeGroup X) N n x = 0

Membership test for the finite-stage group-algebra map kernel ideal.

Show proof
def finiteFoxStageSourceAugmentationIdeal :
    Ideal (finiteFoxStageSourceGroupAlgebra (X := X) N n) :=
  RingHom.ker
    (finiteFoxCommutatorPowerSourceGroupAlgebraAugmentation
      (F := FreeGroup X) N n).toRingHom

The finite-stage source augmentation ideal is the kernel of the corresponding finite-stage augmentation map.

theorem mem_finiteFoxStageSourceAugmentationIdeal
    {N : Subgroup (FreeGroup X)} {n : ℕ}
    {x : finiteFoxStageSourceGroupAlgebra (X := X) N n} :
    x ∈ finiteFoxStageSourceAugmentationIdeal (X := X) N n ↔
      finiteFoxCommutatorPowerSourceGroupAlgebraAugmentation
        (F := FreeGroup X) N n x = 0

Membership in the finite-stage source augmentation ideal is equivalent to vanishing under the finite-stage source augmentation map.

Show proof
def finiteFoxStageGroupAlgebraMapKernelMulAugmentationIdeal :
    Ideal (finiteFoxStageSourceGroupAlgebra (X := X) N n) :=
  finiteFoxStageGroupAlgebraMapKernelIdeal (X := X) N n *
    finiteFoxStageSourceAugmentationIdeal (X := X) N n

The finite-stage product ideal \(K_j I_j\) governing the Fox kernel criterion.

abbrev finiteFoxStageCoordinateVector : Type u :=
  X → finiteFoxStageTargetGroupAlgebra (X := X) N n

Coordinate vectors for finite-stage Fox derivatives.

structure FiniteFoxStageSemidirect where
  left : finiteFoxStageCoordinateVector (X := X) N n
  right : finiteFoxStageTargetQuotient (X := X) N

Finite-stage Fox semidirect target \(A^X \rtimes F/N\), whose left component stores the derivative vector and whose right component stores the quotient word.

theorem ext
    {a b : FiniteFoxStageSemidirect (X := X) N n}
    (hleft : a.left = b.left) (hright : a.right = b.right) : a = b

Extensionality for finite-stage semidirect elements.

Show proof
instance instOneFiniteFoxStageSemidirect : One (FiniteFoxStageSemidirect (X := X) N n) where
  one := ⟨0, 1⟩

The identity element of the finite-stage Fox semidirect product is \((0,1)\).

instance instMulFiniteFoxStageSemidirect : Mul (FiniteFoxStageSemidirect (X := X) N n) where
  mul a b :=
    ⟨a.left +
        (MonoidAlgebra.of (ModNCompletedCoeff n)
          (finiteFoxStageTargetQuotient (X := X) N) a.right) • b.left,
      a.right * b.right⟩

Multiplication in a finite Fox-stage semidirect product is defined by the finite-stage coefficient action and quotient-group multiplication.

instance instInvFiniteFoxStageSemidirect : Inv (FiniteFoxStageSemidirect (X := X) N n) where
  inv a :=
    ⟨-((MonoidAlgebra.of (ModNCompletedCoeff n)
        (finiteFoxStageTargetQuotient (X := X) N) a.right⁻¹) • a.left),
      a.right⁻¹⟩

Inversion in the finite-stage Fox semidirect product.

theorem one_left :
    (1 : FiniteFoxStageSemidirect (X := X) N n).left = 0

The left component of the finite-stage semidirect identity is zero.

Show proof
theorem one_right :
    (1 : FiniteFoxStageSemidirect (X := X) N n).right = 1

The right component of the finite-stage semidirect identity is the group identity.

Show proof
theorem mul_left
    (a b : FiniteFoxStageSemidirect (X := X) N n) :
    (a * b).left =
      a.left +
        (MonoidAlgebra.of (ModNCompletedCoeff n)
          (finiteFoxStageTargetQuotient (X := X) N) a.right) • b.left

Left-component formula for multiplication in the finite-stage semidirect product.

Show proof
theorem mul_right
    (a b : FiniteFoxStageSemidirect (X := X) N n) :
    (a * b).right = a.right * b.right

Right-component formula for multiplication in the finite-stage semidirect product.

Show proof
theorem inv_left
    (a : FiniteFoxStageSemidirect (X := X) N n) :
    a⁻¹.left =
      -((MonoidAlgebra.of (ModNCompletedCoeff n)
        (finiteFoxStageTargetQuotient (X := X) N) a.right⁻¹) • a.left)

Left-component formula for inversion in the finite-stage semidirect product.

Show proof
theorem inv_right
    (a : FiniteFoxStageSemidirect (X := X) N n) :
    a⁻¹.right = a.right⁻¹

Right-component formula for inversion in the finite-stage semidirect product.

Show proof
instance instGroupFiniteFoxStageSemidirect : Group (FiniteFoxStageSemidirect (X := X) N n) where
  one := 1
  mul := (· * ·)
  inv := Inv.inv
  mul_assoc a b c := by
    apply ext
    · funext i
      simp only [mul_left, MonoidAlgebra.of_apply, mul_right, Pi.add_apply, Pi.smul_apply, smul_eq_mul, add_assoc,
  smul_add, smul_smul, MonoidAlgebra.single_mul_single, mul_one]
    · simp only [mul_right, mul_assoc]
  one_mul a := by
    apply ext
    · funext i
      simp only [mul_left, one_left, one_right, Pi.smul_apply, zero_add]
      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]
    · simp only [mul_right, one_right, one_mul]
  mul_one a := by
    apply ext
    · funext i
      simp only [mul_left, MonoidAlgebra.of, MonoidAlgebra.single, MonoidHom.coe_mk, OneHom.coe_mk, one_left,
  smul_zero, Pi.add_apply, Pi.zero_apply, add_zero]
    · simp only [mul_right, one_right, mul_one]
  inv_mul_cancel a := by
    apply ext
    · funext i
      simp only [mul_left, inv_left, MonoidAlgebra.of_apply, inv_right, Pi.add_apply, Pi.neg_apply, Pi.smul_apply,
  smul_eq_mul, neg_add_cancel, one_left, Pi.zero_apply]
    · simp only [mul_right, inv_right, inv_mul_cancel, one_right]

Group structure on the finite-stage Fox semidirect product.