ProCGroups.FoxDifferential.Completed.Semidirect
The principal declarations in this module are:
ZCCompletedFoxSemidirectThe completed Fox semidirect targetZ_C[[H]]^X ⋊ H. -rightMonoidHomThe right projection from the completed Fox semidirect product to the target group. -extExtensionality for completed Fox semidirect elements. -one_leftThe left component of the identity semidirect element is zero.
imports
omit [DecidableEq X] in
structure ZCCompletedFoxSemidirect where
/-- The completed Fox-coordinate component. -/
left : ZCFreeFoxCoordinates C (X := X) (H := H)
/-- The target group component. -/
right : HThe completed Fox semidirect target Z_C[[H]]^X ⋊ H.
omit [DecidableEq X] in
@[ext]
theorem ext {a b : ZCCompletedFoxSemidirect C X H}
(hleft : a.left = b.left) (hright : a.right = b.right) : a = bExtensionality for completed Fox semidirect elements.
Show Lean proof
by
cases a
cases b
simp_all
instance instOneZCCompletedFoxSemidirect : One (ZCCompletedFoxSemidirect C X H) where
one := ⟨0, 1⟩Identity element of the completed Fox semidirect product.
instance instMulZCCompletedFoxSemidirect : Mul (ZCCompletedFoxSemidirect C X H) where
mul a b :=
⟨a.left + zcGroupLike C H a.right • b.left, a.right * b.right⟩Multiplication in the completed Fox semidirect product.
instance instInvZCCompletedFoxSemidirect : Inv (ZCCompletedFoxSemidirect C X H) where
inv a :=
⟨-(zcGroupLike C H a.right⁻¹ • a.left), a.right⁻¹⟩Inversion in the completed Fox semidirect product.
omit [DecidableEq X] in
@[simp]
theorem one_left :
(1 : ZCCompletedFoxSemidirect C X H).left = 0The left component of the identity semidirect element is zero.
Show Lean proof
rfl
omit [DecidableEq X] in
@[simp]
theorem one_right :
(1 : ZCCompletedFoxSemidirect C X H).right = 1The right component of the identity semidirect element is the group identity.
Show Lean proof
rfl
omit [DecidableEq X] in
@[simp]
theorem mul_left (a b : ZCCompletedFoxSemidirect C X H) :
(a * b).left = a.left + zcGroupLike C H a.right • b.leftThe left component of semidirect multiplication.
Show Lean proof
rfl
omit [DecidableEq X] in
@[simp]
theorem mul_right (a b : ZCCompletedFoxSemidirect C X H) :
(a * b).right = a.right * b.rightThe right component of semidirect multiplication.
Show Lean proof
rfl
omit [DecidableEq X] in
@[simp]
theorem inv_left (a : ZCCompletedFoxSemidirect C X H) :
a⁻¹.left = -(zcGroupLike C H a.right⁻¹ • a.left)The left component of semidirect inversion.
Show Lean proof
rfl
omit [DecidableEq X] in
@[simp]
theorem inv_right (a : ZCCompletedFoxSemidirect C X H) :
a⁻¹.right = a.right⁻¹The right component of semidirect inversion.
Show Lean proof
rfl
instance instGroupZCCompletedFoxSemidirect : Group (ZCCompletedFoxSemidirect C X H) where
one := 1
mul := (· * ·)
inv := Inv.inv
mul_assoc a b c := by
ext
· simp only [mul_left, mul_right, map_mul, Pi.add_apply, Pi.smul_apply, smul_eq_mul, add_assoc,
zcCompletedGroupAlgebraProjection_add, zcCompletedGroupAlgebraProjection_mul,
zcCompletedGroupAlgebraProjection_groupLike, MonoidAlgebra.of_apply,
MonoidAlgebra.single_mul_single, mul_one, MonoidAlgebra.coeff_add, smul_add, smul_smul]
· simp only [mul_right, mul_assoc]
one_mul a := by
ext
· simp only [mul_left, one_left, one_right, map_one, one_smul, Pi.add_apply, Pi.zero_apply,
zero_add]
· simp only [mul_right, one_right, one_mul]
mul_one a := by
ext
· simp only [mul_left, 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
ext
· simp only [mul_left, inv_left, inv_right, Pi.add_apply, Pi.neg_apply, Pi.smul_apply,
smul_eq_mul,
neg_add_cancel, zcCompletedGroupAlgebraProjection_zero, Pi.zero_apply, one_left]
· simp only [mul_right, inv_right, inv_mul_cancel, one_right]Group structure on the completed Fox semidirect product.
omit [DecidableEq X] in
def rightMonoidHom : ZCCompletedFoxSemidirect C X H →* H where
toFun a := a.right
map_one' := rfl
map_mul' _ _ := rflThe right projection from the completed Fox semidirect product to the target group.
omit [DecidableEq X] in
@[simp]
theorem rightMonoidHom_apply (a : ZCCompletedFoxSemidirect C X H) :
rightMonoidHom C X H a = a.rightProjection to the right factor of the completed Fox semidirect product returns its stored group element.
Show Lean proof
rfl
def zcCompletedFoxSemidirectLift (ψ : FreeGroup X →* H) :
FreeGroup X →* ZCCompletedFoxSemidirect C X H :=
FreeGroup.lift fun x =>
{ left := Pi.single x (1 : ZCCompletedGroupAlgebra C H)
right := ψ (FreeGroup.of x) }The completed Fox semidirect lift of a free group homomorphism.
@[simp]
theorem zcCompletedFoxSemidirectLift_right
(ψ : FreeGroup X →* H) (w : FreeGroup X) :
(zcCompletedFoxSemidirectLift C ψ w).right = ψ wThe right component of the completed Fox semidirect lift is ψ.
Show Lean proof
by
induction w using FreeGroup.induction_on with
| C1 =>
simp only [zcCompletedFoxSemidirectLift, map_one, ZCCompletedFoxSemidirect.one_right]
| of x =>
simp only [zcCompletedFoxSemidirectLift, FreeGroup.lift_apply_of]
| inv_of x hx =>
simpa using congrArg Inv.inv hx
| mul u v hu hv =>
simp only [map_mul, ZCCompletedFoxSemidirect.mul_right, hu, hv]
def zcCompletedFoxSemidirectDerivativeVector
(ψ : FreeGroup X →* H) :
ScalarCrossedHom (zcCompletedGroupAlgebraScalar C ψ)
(ZCFreeFoxCoordinates C (X := X) (H := H)) where
toFun w := (zcCompletedFoxSemidirectLift C ψ w).left
map_mul' u v := by
simp only [scalarCrossedAction_apply, map_mul, ZCCompletedFoxSemidirect.mul_left,
zcCompletedFoxSemidirectLift_right,
zcCompletedGroupAlgebraScalar_apply]The left component of the completed Fox semidirect lift.
@[simp]
theorem zcCompletedFoxSemidirectDerivativeVector_of
(ψ : FreeGroup X →* H) (x : X) :
zcCompletedFoxSemidirectDerivativeVector C ψ (FreeGroup.of x) =
Pi.single x (1 : ZCCompletedGroupAlgebra C H)The completed semidirect derivative vector sends a free generator to the coordinate basis vector.
Show Lean proof
by
change (zcCompletedFoxSemidirectLift C ψ (FreeGroup.of x)).left =
Pi.single x (1 : ZCCompletedGroupAlgebra C H)
simp only [zcCompletedFoxSemidirectLift, FreeGroup.lift_apply_of]
theorem zcCompletedFoxSemidirectDerivativeVector_eq
(ψ : FreeGroup X →* H) :
zcCompletedFoxSemidirectDerivativeVector C ψ =
zcFreeGroupFoxDerivativeVector C ψThe completed semidirect derivative vector is the completed free-group Fox derivative vector.
Show Lean proof
by
exact zcFreeGroupFoxDerivativeVector_unique C ψ
(zcCompletedFoxSemidirectDerivativeVector C ψ)
(zcCompletedFoxSemidirectDerivativeVector_of C ψ)
theorem zcCompletedFoxSemidirectLift_eq
(ψ : FreeGroup X →* H) (w : FreeGroup X) :
zcCompletedFoxSemidirectLift C ψ w =
{ left := zcFreeGroupFoxDerivativeVector C ψ w
right := ψ w }The completed semidirect lift stores the completed Fox derivative vector and the target homomorphism.
Show Lean proof
by
apply ZCCompletedFoxSemidirect.ext
· rw [← zcCompletedFoxSemidirectDerivativeVector_eq]
rfl
· exact zcCompletedFoxSemidirectLift_right C ψ w
omit [DecidableEq X] in
def zcCompletedFoxSemidirectLiftLeftCrossedHom
(ψ : FreeGroup X →* H)
(φ : FreeGroup X →* ZCCompletedFoxSemidirect C X H)
(hright : ∀ w : FreeGroup X, (φ w).right = ψ w) :
ScalarCrossedHom (zcCompletedGroupAlgebraScalar C ψ)
(ZCFreeFoxCoordinates C (X := X) (H := H)) where
toFun w := (φ w).left
map_mul' u v := by
have h := congrArg ZCCompletedFoxSemidirect.left (map_mul φ u v)
change (φ (u * v)).left =
(φ u).left + zcCompletedGroupAlgebraScalar C ψ u • (φ v).left
rw [h]
simp only [ZCCompletedFoxSemidirect.mul_left, hright u,
zcCompletedGroupAlgebraScalar_apply]The left component of a semidirect homomorphism with prescribed right component, bundled as a completed crossed homomorphism.
theorem zcCompletedFoxSemidirectLift_unique
(ψ : FreeGroup X →* H)
(φ : FreeGroup X →* ZCCompletedFoxSemidirect C X H)
(hright : ∀ w : FreeGroup X, (φ w).right = ψ w)
(hbasis :
∀ x : X, (φ (FreeGroup.of x)).left =
Pi.single x (1 : ZCCompletedGroupAlgebra C H)) :
φ = zcCompletedFoxSemidirectLift C ψUniqueness of the completed semidirect lift with prescribed right component and generator coordinate values.
Show Lean proof
by
let delta :=
zcCompletedFoxSemidirectLiftLeftCrossedHom C ψ φ hright
have hdelta_eq : delta = zcFreeGroupFoxDerivativeVector C ψ :=
zcFreeGroupFoxDerivativeVector_unique C ψ delta hbasis
apply MonoidHom.ext
intro w
apply ZCCompletedFoxSemidirect.ext
· change delta w = zcCompletedFoxSemidirectDerivativeVector C ψ w
rw [hdelta_eq, zcCompletedFoxSemidirectDerivativeVector_eq]
· rw [hright w, zcCompletedFoxSemidirectLift_right]
theorem existsUnique_zcCompletedFoxSemidirectLift
(ψ : FreeGroup X →* H) :
∃! φ : FreeGroup X →* ZCCompletedFoxSemidirect C X H,
(∀ w : FreeGroup X, (φ w).right = ψ w) ∧
∀ x : X, (φ (FreeGroup.of x)).left =
Pi.single x (1 : ZCCompletedGroupAlgebra C H)Existence and uniqueness theorem for the completed semidirect lift.
Show Lean proof
by
refine ⟨zcCompletedFoxSemidirectLift C ψ, ?_, ?_⟩
· exact ⟨zcCompletedFoxSemidirectLift_right C ψ,
zcCompletedFoxSemidirectDerivativeVector_of C ψ⟩
· intro φ hφ
exact zcCompletedFoxSemidirectLift_unique C ψ φ hφ.1 hφ.2
theorem zcCompletedFoxSemidirectDerivativeVector_foxBoundary
(ψ : FreeGroup X →* H) (w : FreeGroup X) :
zcFreeGroupFoxBoundary C ψ (zcCompletedFoxSemidirectDerivativeVector C ψ w) =
zcCompletedGroupAlgebraBoundary C ψ wBoundary-map form of the completed Fox fundamental formula for the semidirect derivative vector.
Show Lean proof
by
exact zcFreeGroupFoxBoundary_of_crossedHom C ψ
(zcCompletedFoxSemidirectDerivativeVector C ψ)
(zcCompletedFoxSemidirectDerivativeVector_of C ψ) w
theorem zcCompletedFoxSemidirectLift_euler_formula
(ψ : FreeGroup X →* H) (w : FreeGroup X) :
zcGroupLike C H (ψ w) - 1 =
∑ i : X,
(zcCompletedFoxSemidirectLift C ψ w).left i *
(zcGroupLike C H (ψ (FreeGroup.of i)) - 1)Completed Fox-Euler formula using the left component of the semidirect lift: [ψ(w)] - 1 = ∑ i, φ(w)_i * ([ψ(x_i)] - 1).
Show Lean proof
by
exact zcFreeGroupFoxDerivative_euler_formula_of_crossedHom C ψ
(zcCompletedFoxSemidirectDerivativeVector C ψ)
(zcCompletedFoxSemidirectDerivativeVector_of C ψ) w
theorem zcCompletedFoxSemidirectLift_foxBoundary_of_generatorValues
(ψ : FreeGroup X →* H)
(φ : FreeGroup X →* ZCCompletedFoxSemidirect C X H)
(hright : ∀ w : FreeGroup X, (φ w).right = ψ w)
(hbasis :
∀ x : X, (φ (FreeGroup.of x)).left =
Pi.single x (1 : ZCCompletedGroupAlgebra C H))
(w : FreeGroup X) :
zcFreeGroupFoxBoundary C ψ (φ w).left =
zcCompletedGroupAlgebraBoundary C ψ wConditional semidirect Fox boundary formula. Any semidirect lift with right component ψ and standard generator coordinates satisfies the completed Fox boundary formula.
Show Lean proof
by
exact zcFreeGroupFoxBoundary_of_crossedHom C ψ
(zcCompletedFoxSemidirectLiftLeftCrossedHom C ψ φ hright)
hbasis w
theorem zcCompletedFoxSemidirectLift_euler_formula_of_generatorValues
(ψ : FreeGroup X →* H)
(φ : FreeGroup X →* ZCCompletedFoxSemidirect C X H)
(hright : ∀ w : FreeGroup X, (φ w).right = ψ w)
(hbasis :
∀ x : X, (φ (FreeGroup.of x)).left =
Pi.single x (1 : ZCCompletedGroupAlgebra C H))
(w : FreeGroup X) :
zcGroupLike C H (ψ w) - 1 =
∑ i : X,
(φ w).left i * (zcGroupLike C H (ψ (FreeGroup.of i)) - 1)Conditional semidirect Fox-Euler formula. The left component of any semidirect lift with right component ψ and standard generator coordinates gives the completed Fox-Euler sum.
Show Lean proof
by
exact zcFreeGroupFoxDerivative_euler_formula_of_crossedHom C ψ
(zcCompletedFoxSemidirectLiftLeftCrossedHom C ψ φ hright)
hbasis w