ModuleMagnusKernel.lean
Nyll.ProCGroups.FoxDifferential.Completed.Comparison.MagnusKernel
15 declarations indexed from sourceView source ↗ Module documentation
Fox Differential / Completed / Comparison / Magnus Kernel
This module transfers discrete Magnus-kernel criteria through finite algebraic stages and completed Fox differential coordinates.
Declarations
Source context 5 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
Source context 6 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
CrowellExactSequence.mem_foxCommutatorPowerSubgroup_of_residueUniversalDifferential_eq_zero
DocumentationThe finite-stage Magnus reverse inclusion in residue-universal form. For the finite quotient \(F/N\), vanishing of the residue universal Fox differential modulo \(n\) forces a kernel word into \([N,N]N^n\).
Source context 7 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
CrowellExactSequence.mem_commutator_ker_of_zcUniversalDifferential_eq_zero_of_surjective
DocumentationGeneral finite-class discrete Magnus conclusion for a surjective finite target map, with the FoxDifferential finite-stage input supplied by the residue universal reverse inclusion.
Source context 7 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
CrowellExactSequence.mem_commutator_ker_of_foxAlgebraicStageDerivativeVector_eq_zero
DocumentationFinite-stage Magnus conclusion formulated with the finite Fox derivative vector. This is the form used after a continuous pro-\(C\) derivative is projected to one finite coefficient/target stage: the residue-universal reverse inclusion supplies the finite-stage Magnus input.
Source context 7 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
CrowellExactSequence.mem_commutator_ker_of_finiteFoxStageDerivativeVector_eq_zero_finite
DocumentationUniverse-polymorphic finite-stage Magnus conclusion for finite source and target stages. This is only a transport of the Type 0 discrete Magnus theorem above: finite groups are lowered to an equivalent small model, and the finite-stage Fox derivative is reindexed along the free-basis equivalence.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
Lean source · full declarationtheorem mem_commutator_ker_of_finiteFoxStageDerivativeVector_eq_zero_finite
{X : Type u} [Finite X] [DecidableEq X]
{Q H : Type u} [Group Q] [Group H] [Finite Q] [Finite H]
(α : FreeGroup X →* Q) (β : Q →* H) (n : ℕ) (hn : 0 < n)
(hpow : ∀ k : β.ker, k ^ n = 1)
{w : FreeGroup X}
(hwker : w ∈ (β.comp α).ker)
(hder :
FoxDifferential.foxAlgebraicStageDerivativeVector
(X := X) (β.comp α).ker n w = 0) :
(⟨α w, by
change β (α w) = 1
simpa [MonoidHom.mem_ker, MonoidHom.comp_apply] using hwker⟩ : β.ker) ∈
commutator β.ker := by
classical
rcases Finite.exists_equiv_fin X with ⟨m, ⟨eX⟩⟩
let : DecidableEq (Fin m) := Classical.decEq (Fin m)
rcases Finite.exists_type_univ_nonempty_mulEquiv.{u, 0} Q with
⟨Q0, instQ0Group, _instQ0Fintype, ⟨eQ⟩⟩
rcases Finite.exists_type_univ_nonempty_mulEquiv.{u, 0} H with
⟨H0, instH0Group, _instH0Fintype, ⟨eH⟩⟩
let : Group Q0 := instQ0Group
let : Group H0 := instH0Group
let phi : FreeGroup X ≃* FreeGroup (Fin m) := FreeGroup.freeGroupCongr eX
let α0 : FreeGroup (Fin m) →* Q0 :=
eQ.toMonoidHom.comp (α.comp phi.symm.toMonoidHom)
let β0 : Q0 →* H0 :=
eH.toMonoidHom.comp (β.comp eQ.symm.toMonoidHom)
let w0 : FreeGroup (Fin m) := phi w
let M0 : Subgroup (FreeGroup (Fin m)) :=
(β0.comp α0).ker
have : M0.Normal := by
dsimp [M0]
infer_instance
have hM0 : (β.comp α).ker.map phi.toMonoidHom = M0 := by
ext z
constructor
· rintro ⟨x, hx, rfl⟩
change β0 (α0 (phi x)) = 1
change β (α x) = 1 at hx
have hphi : phi.symm (phi x) = x := phi.symm_apply_apply x
simpa [β0, α0, M0, hphi] using congrArg eH hx
· intro hz
refine ⟨phi.symm z, ?_, ?_⟩
· change β (α (phi.symm z)) = 1
have hz' : eH (β (α (phi.symm z))) = 1 := by
simpa [β0, α0, M0] using hz
exact eH.injective (by simpa using hz')
· exact phi.apply_symm_apply z
have hwker0 : w0 ∈ (β0.comp α0).ker := by
change β0 (α0 w0) = 1
change β (α w) = 1 at hwker
have hphi : phi.symm (phi w) = w := phi.symm_apply_apply w
simpa [β0, α0, w0, hphi] using congrArg eH hwker
have hderM0 :
FoxDifferential.foxAlgebraicStageDerivativeVector
(X := Fin m) M0 n w0 = 0 := by
simpa [M0, w0, phi] using
FoxDifferential.foxAlgebraicStageDerivativeVector_eq_zero_reindex
(X := X) (Y := Fin m) eX (β.comp α).ker M0 hM0 n hder
have hder0 :
FoxDifferential.foxAlgebraicStageDerivativeVector
(X := Fin m) (β0.comp α0).ker n w0 = 0 := by
simpa [M0] using hderM0
have hpow0 : ∀ k : β0.ker, k ^ n = 1 := by
intro k
have hkβ : β (eQ.symm k.1) = 1 := by
have hk0 : β0 k.1 = 1 := by
exact k.2
have hk : eH (β (eQ.symm k.1)) = 1 := by
simpa [β0] using hk0
exact eH.injective (by simpa using hk)
have hkpow := hpow ⟨eQ.symm k.1, hkβ⟩
have hkpow' : (eQ.symm k.1) ^ n = 1 :=
congrArg Subtype.val hkpow
have := congrArg eQ hkpow'
apply Subtype.ext
simpa using this
let q0 : β0.ker :=
⟨α0 w0, by
change β0 (α0 w0) = 1
simpa [MonoidHom.mem_ker] using hwker0⟩
have hcomm0 : q0 ∈ commutator β0.ker := by
simpa [q0] using
mem_commutator_ker_of_foxAlgebraicStageDerivativeVector_eq_zero
(X := Fin m) α0 β0 n hn hpow0 hwker0 hder0
let κ : β0.ker →* β.ker :=
{ toFun := fun k =>
⟨eQ.symm k.1, by
change β (eQ.symm k.1) = 1
have hk0 : β0 k.1 = 1 := by
exact k.2
have hk : eH (β (eQ.symm k.1)) = 1 := by
simpa [β0] using hk0
exact eH.injective (by simpa using hk)⟩
map_one' := by
apply Subtype.ext
simp only [OneMemClass.coe_one, map_one]
map_mul' := by
intro a b
apply Subtype.ext
simp only [Subgroup.coe_mul, map_mul, MulMemClass.mk_mul_mk]}
have hcomm_map : (commutator β0.ker).map κ ≤ commutator β.ker := by
rw [_root_.map_commutator_eq]
exact Subgroup.commutator_mono (by intro x hx; trivial) (by intro x hx; trivial)
have hκq0 :
κ q0 =
(⟨α w, by
change β (α w) = 1
simpa [MonoidHom.mem_ker, MonoidHom.comp_apply] using hwker⟩ : β.ker) := by
apply Subtype.ext
have hphi : phi.symm (phi w) = w := phi.symm_apply_apply w
simp only [MulEquiv.toMonoidHom_eq_coe, MonoidHom.coe_comp, MonoidHom.coe_ofClass,
Function.comp_apply, hphi, MonoidHom.coe_mk, OneHom.coe_mk,
MulEquiv.symm_apply_apply, κ, q0, α0, w0]
have hκcomm : κ q0 ∈ commutator β.ker :=
hcomm_map ⟨q0, hcomm0, rfl⟩
simpa [hκq0] using hκcomm
CrowellExactSequence.mem_commutator_ker_of_relFreeFoxDeriv_eq_zero_of_surj_factor
DocumentationDiscrete Magnus descent through a surjective finite source quotient, with the hypothesis expressed as ordinary relative Fox derivative zero for a representative word.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
CrowellExactSequence.mem_commutator_ker_of_zcUniversalDifferential_eq_zero_allFinite
DocumentationOver the all-finite coefficient class, vanishing of the completed universal differential on a finite target quotient implies the ordinary discrete Magnus commutator conclusion.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
CrowellExactSequence.mem_commutator_ker_of_zcUniversalDifferential_eq_zero_allFinite_of_surjective
DocumentationOver the all-finite coefficient class, vanishing of the completed universal differential for any surjective finite target map implies the ordinary discrete Magnus commutator conclusion.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
CrowellExactSequence.mem_commutator_ker_of_zcFreeFoxDerivVec_eq_zero_allFinite_of_surj_factor
DocumentationAll-finite discrete Magnus descent through a surjective finite source quotient, with the hypothesis expressed as zero of the completed Fox derivative vector for the representative word.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
CrowellExactSequence.mem_commutator_ker_of_zcUnivDiff_eq_zero_allFinite_of_surj_factor
DocumentationAll-finite discrete Magnus descent through a surjective finite source quotient. If a surjective free-group map \(\alpha: \mathrm{FreeGroup}(X) \to Q\) presents a finite-stage source and \(\beta: Q \to H\) is a surjective target map, vanishing of the completed universal differential on a representative word of \(q \in \ker \beta\) forces \(q\) into the commutator subgroup of \(\ker \beta\).
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
CrowellExactSequence.mem_commutator_ker_of_zcUniversalDifferential_eq_zero_pGroup
DocumentationOver the finite \(p\)-group coefficient class, vanishing of the completed universal differential on a finite \(p\)-group target quotient implies the ordinary discrete Magnus commutator conclusion.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
CrowellExactSequence.mem_commutator_ker_of_zcUniversalDifferential_eq_zero_pGroup_of_surjective
DocumentationOver the finite \(p\)-group coefficient class, vanishing of the completed universal differential for any surjective finite \(p\)-group target map implies the ordinary discrete Magnus commutator conclusion.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
CrowellExactSequence.mem_commutator_ker_of_zcFreeFoxDerivVec_eq_zero_pGroup_of_surj_factor
DocumentationFinite-p discrete Magnus descent through a surjective finite source quotient, with the hypothesis expressed as zero of the completed Fox derivative vector for the representative word.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u
CrowellExactSequence.mem_commutator_ker_of_zcUnivDiff_eq_zero_pGroup_of_surj_factor
DocumentationFinite-p discrete Magnus descent through a surjective finite source quotient.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace CrowellExactSequence
noncomputable section
open FoxDifferential
variable {X : Type} {H : Type}
variable [Group H] [Finite X]
local instance : Fintype X := Fintype.ofFinite X
local instance : DecidableEq X := Classical.decEq X
universe u