ProCGroups.FoxDifferential.Completed.FiniteStage.SemidirectCycles
The principal declarations in this module are:
foxAlgebraicStageSemidirectSourceKernelPointThe finite semidirect point \((Dq,1)\) attached to a source-quotient element. -foxAlgebraicStageSemidirectKernelWordPointThe finite semidirect point (Dw,1) attached to a word. -foxAlgebraicStageSemidirectSourceKernelPoint_leftThe left coordinate of the finite-stage semidirect point is the specified derivative component. -foxAlgebraicStageSemidirectSourceKernelPoint_rightThe right coordinate of the finite-stage semidirect point is the corresponding quotient component.
Imported by
- ProCGroups.FoxDifferential.Completed.FiniteStage
- ProCGroups.FoxDifferential.Completed.FiniteStage.BoundarySubgroups
- ProCGroups.FoxDifferential.Completed.FiniteStage.CoeffMap.BoundaryCycles
- ProCGroups.FoxDifferential.Completed.FiniteStage.SourceBoundary
- ProCGroups.FoxDifferential.Completed.FreeProC.StageApproximation
def foxAlgebraicStageSemidirectSourceKernelPoint
(q : FreeGroup X ⧸ foxCommutatorPowerSubgroup (F := FreeGroup X) N n) :
FoxAlgebraicStageSemidirect (X := X) N n :=
{ left := foxAlgebraicStageQuotientDerivativeVector (X := X) N n q,
right := 1 }The finite semidirect point \((Dq,1)\) attached to a source-quotient element.
@[simp]
theorem foxAlgebraicStageSemidirectSourceKernelPoint_left
(q : FreeGroup X ⧸ foxCommutatorPowerSubgroup (F := FreeGroup X) N n) :
(foxAlgebraicStageSemidirectSourceKernelPoint (X := X) N n q).left =
foxAlgebraicStageQuotientDerivativeVector (X := X) N n qThe left coordinate of the finite-stage semidirect point is the specified derivative component.
Show Lean proof
rfl
@[simp]
theorem foxAlgebraicStageSemidirectSourceKernelPoint_right
(q : FreeGroup X ⧸ foxCommutatorPowerSubgroup (F := FreeGroup X) N n) :
(foxAlgebraicStageSemidirectSourceKernelPoint (X := X) N n q).right = 1The right coordinate of the finite-stage semidirect point is the corresponding quotient component.
Show Lean proof
rfl
def foxAlgebraicStageSemidirectKernelWordPoint (w : FreeGroup X) :
FoxAlgebraicStageSemidirect (X := X) N n :=
{ left := foxAlgebraicStageDerivativeVector (X := X) N n w,
right := 1 }The finite semidirect point (Dw,1) attached to a word.
@[simp]
theorem foxAlgebraicStageSemidirectKernelWordPoint_left (w : FreeGroup X) :
(foxAlgebraicStageSemidirectKernelWordPoint (X := X) N n w).left =
foxAlgebraicStageDerivativeVector (X := X) N n wThe left coordinate of the finite-stage semidirect point is the specified derivative component.
Show Lean proof
rfl
@[simp]
theorem foxAlgebraicStageSemidirectKernelWordPoint_right (w : FreeGroup X) :
(foxAlgebraicStageSemidirectKernelWordPoint (X := X) N n w).right = 1The right coordinate of the finite-stage semidirect point is the corresponding quotient component.
Show Lean proof
rfl
def foxAlgebraicStageSemidirectBoundaryCycleSet [Fintype X] :
Set (FoxAlgebraicStageSemidirect (X := X) N n) :=
{ y | y.right = 1 ∧
y.left ∈ foxAlgebraicStageBoundaryCycleSubmodule (X := X) N n }Finite-stage boundary cycles as semidirect points \((v,1)\) with \(\partial v = 0\).
omit [DecidableEq X] in
@[simp]
theorem mem_foxAlgebraicStageSemidirectBoundaryCycleSet
(N : Subgroup (FreeGroup X)) [N.Normal] (n : ℕ) [Fintype X]
{y : FoxAlgebraicStageSemidirect (X := X) N n} :
y ∈ foxAlgebraicStageSemidirectBoundaryCycleSet (X := X) N n ↔
y.right = 1 ∧ y.left ∈ foxAlgebraicStageBoundaryCycleSubmodule (X := X) N nMembership in the finite-stage boundary-cycle object is characterized by the corresponding boundary-vanishing condition.
Show Lean proof
Iff.rfl
def foxAlgebraicStageSemidirectSourceKernelDerivativeSet :
Set (FoxAlgebraicStageSemidirect (X := X) N n) :=
{ y | ∃ q : FreeGroup X ⧸ foxCommutatorPowerSubgroup (F := FreeGroup X) N n,
foxCommutatorPowerQuotientMapToNormalQuotient (F := FreeGroup X) N n q = 1 ∧
foxAlgebraicStageSemidirectSourceKernelPoint (X := X) N n q = y }Semidirect source-kernel derivative points in the finite stage.
def foxAlgebraicStageSemidirectKernelWordDerivativeSet :
Set (FoxAlgebraicStageSemidirect (X := X) N n) :=
{ y | ∃ w : FreeGroup X,
w ∈ N ∧ foxAlgebraicStageSemidirectKernelWordPoint (X := X) N n w = y }This set consists of semidirect kernel-word derivative points at the finite Fox stage.
theorem foxAlgebraicStageSemidirectSourceKernelDerivativeSet_eq_kernelWordDerivativeSet :
foxAlgebraicStageSemidirectSourceKernelDerivativeSet (X := X) N n =
foxAlgebraicStageSemidirectKernelWordDerivativeSet (X := X) N nSource-kernel semidirect points and actual kernel-word semidirect points coincide.
Show Lean proof
by
ext y
constructor
· rintro ⟨q, hq, hy⟩
rcases QuotientGroup.mk'_surjective
(foxCommutatorPowerSubgroup (F := FreeGroup X) N n) q with ⟨w, rfl⟩
have hwN : w ∈ N := by
have hwq : QuotientGroup.mk' N w = 1 := by
simpa only [foxCommutatorPowerQuotientMapToNormalQuotient_mk] using hq
exact (QuotientGroup.eq_one_iff (N := N) w).1 hwq
refine ⟨w, hwN, ?_⟩
rw [← hy]
apply FoxAlgebraicStageSemidirect.ext
· exact (foxAlgebraicStageQuotientDerivativeVector_mk (X := X) N n w).symm
· simp only [foxAlgebraicStageSemidirectKernelWordPoint,
foxAlgebraicStageSemidirectSourceKernelPoint,
QuotientGroup.mk'_apply]
· rintro ⟨w, hwN, hy⟩
refine ⟨QuotientGroup.mk'
(foxCommutatorPowerSubgroup (F := FreeGroup X) N n) w, ?_, ?_⟩
· rw [foxCommutatorPowerQuotientMapToNormalQuotient_mk]
exact (QuotientGroup.eq_one_iff (N := N) w).2 hwN
· rw [← hy]
apply FoxAlgebraicStageSemidirect.ext
· exact foxAlgebraicStageQuotientDerivativeVector_mk (X := X) N n w
· simp only [foxAlgebraicStageSemidirectSourceKernelPoint, QuotientGroup.mk'_apply,
foxAlgebraicStageSemidirectKernelWordPoint]
theorem foxAlgebraicStageSemidirectSourceKernelDerivativeSet_subset_boundaryCycleSet
[Fintype X] :
foxAlgebraicStageSemidirectSourceKernelDerivativeSet (X := X) N n ⊆
foxAlgebraicStageSemidirectBoundaryCycleSet (X := X) N nEvery finite semidirect source-kernel derivative point is a semidirect boundary cycle.
Show Lean proof
by
intro y hy
rcases hy with ⟨q, hq, hy⟩
rw [← hy]
constructor
· simp only [foxAlgebraicStageSemidirectSourceKernelPoint]
· exact foxAlgebraicStageSourceKernelDerivativeSet_subset_boundaryCycleSubmodule
(X := X) N n ⟨q, hq, rfl⟩
theorem foxAlgebraicStageSemidirectKernelWordDerivativeSet_subset_boundaryCycleSet
[Fintype X] :
foxAlgebraicStageSemidirectKernelWordDerivativeSet (X := X) N n ⊆
foxAlgebraicStageSemidirectBoundaryCycleSet (X := X) N nEvery finite semidirect kernel-word derivative point is a semidirect boundary cycle.
Show Lean proof
by
rw [← foxAlgebraicStageSemidirectSourceKernelDerivativeSet_eq_kernelWordDerivativeSet
(X := X) N n]
exact foxAlgebraicStageSemidirectSourceKernelDerivativeSet_subset_boundaryCycleSet
(X := X) N n
def foxAlgebraicStageSemidirectBoundaryCyclesCoveredBySourceKernel [Fintype X] : Prop :=
foxAlgebraicStageSemidirectBoundaryCycleSet (X := X) N n ⊆
foxAlgebraicStageSemidirectSourceKernelDerivativeSet (X := X) N nSemidirect finite-stage coverage: every semidirect boundary cycle is represented by a source-kernel derivative point.
theorem foxAlgebraicStageSemidirectBoundaryCyclesCoveredBySourceKernel_iff
{N : Subgroup (FreeGroup X)} [N.Normal] {n : ℕ} [Fintype X] :
foxAlgebraicStageSemidirectBoundaryCyclesCoveredBySourceKernel (X := X) N n ↔
foxAlgebraicStageBoundaryCyclesCoveredBySourceKernel (X := X) N nThe semidirect finite-stage coverage target is equivalent to the coordinate coverage target.
Show Lean proof
by
constructor
· intro hcover v hv
have hy :
({ left := v, right := (1 : foxAlgebraicStageTargetQuotient (X := X) N) } :
FoxAlgebraicStageSemidirect (X := X) N n) ∈
foxAlgebraicStageSemidirectBoundaryCycleSet (X := X) N n := by
exact ⟨rfl, hv⟩
rcases hcover hy with ⟨q, hq, hqy⟩
refine ⟨q, hq, ?_⟩
have hleft := congrArg (fun z : FoxAlgebraicStageSemidirect (X := X) N n => z.left) hqy
simpa [foxAlgebraicStageSemidirectSourceKernelPoint] using hleft
· intro hcover y hy
rcases hy with ⟨hyright, hyleft⟩
rcases hcover hyleft with ⟨q, hq, hqleft⟩
refine ⟨q, hq, ?_⟩
apply FoxAlgebraicStageSemidirect.ext
· simpa [foxAlgebraicStageSemidirectSourceKernelPoint] using hqleft
· simpa [foxAlgebraicStageSemidirectSourceKernelPoint] using hyright.symm
theorem foxAlgebraicStageSemidirectBoundaryCyclesCoveredByKernelWords_iff
{N : Subgroup (FreeGroup X)} [N.Normal] {n : ℕ} [Fintype X] :
foxAlgebraicStageSemidirectBoundaryCycleSet (X := X) N n ⊆
foxAlgebraicStageSemidirectKernelWordDerivativeSet (X := X) N n ↔
foxAlgebraicStageBoundaryCyclesCoveredBySourceKernel (X := X) N nFinite-stage semidirect coverage is equivalent to coverage by actual kernel words.
Show Lean proof
by
rw [← foxAlgebraicStageSemidirectSourceKernelDerivativeSet_eq_kernelWordDerivativeSet
(X := X) N n]
exact foxAlgebraicStageSemidirectBoundaryCyclesCoveredBySourceKernel_iff
(X := X) (N := N) (n := n)