ProCGroups.FoxDifferential.RightDerivative.Semidirect
The principal declarations in this module are:
RightFoxSemidirectThe right Fox semidirect product records a group element together with its right-derivative coordinate. -rightHomThe right Fox semidirect construction defines a homomorphism from a right derivation. -extThe Fox semidirect construction has the stated component formula. -one_leftThe additive component of the identity semidirect element is zero.
Imported by
structure RightFoxSemidirect (G : Type*) [Group G] where
/-- The group-ring coordinate, representing the right Fox derivative. -/
left : FoxDifferential.GroupRing G
/-- The underlying group element. -/
right : GThe right Fox semidirect product records a group element together with its right-derivative coordinate.
@[ext]
theorem ext {x y : RightFoxSemidirect G}
(hleft : x.left = y.left) (hright : x.right = y.right) : x = yThe Fox semidirect construction has the stated component formula.
Show Lean proof
by
cases x
cases y
simp_all
instance instOneRightFoxSemidirect : One (RightFoxSemidirect G) where
one := ⟨0, 1⟩The unit of the right Fox semidirect product is the pair of identity components.
instance instMulRightFoxSemidirect : Mul (RightFoxSemidirect G) where
mul x y :=
⟨x.left * MonoidAlgebra.of ℤ G y.right + y.left, x.right * y.right⟩Multiplication in the right Fox semidirect product is given by the right action and group multiplication.
instance instInvRightFoxSemidirect : Inv (RightFoxSemidirect G) where
inv x :=
⟨-x.left * MonoidAlgebra.of ℤ G x.right⁻¹, x.right⁻¹⟩Inversion in the right Fox semidirect product is computed from the right action and the inverse in the base group.
@[simp]
theorem one_left : (1 : RightFoxSemidirect G).left = 0The additive component of the identity semidirect element is zero.
Show Lean proof
rfl
@[simp]
theorem one_right : (1 : RightFoxSemidirect G).right = 1The free-group component of the identity semidirect element is the identity word.
Show Lean proof
rfl
@[simp]
theorem mul_left (x y : RightFoxSemidirect G) :
(x * y).left = x.left * MonoidAlgebra.of ℤ G y.right + y.leftThe left component of semidirect multiplication is computed by the Fox product rule.
Show Lean proof
rfl
@[simp]
theorem mul_right (x y : RightFoxSemidirect G) :
(x * y).right = x.right * y.rightThe right component of semidirect multiplication is the product of right components.
Show Lean proof
rfl
@[simp]
theorem inv_left (x : RightFoxSemidirect G) :
x⁻¹.left = -x.left * MonoidAlgebra.of ℤ G x.right⁻¹The left component of the semidirect inverse is computed by the Fox inverse formula.
Show Lean proof
rfl
@[simp]
theorem inv_right (x : RightFoxSemidirect G) :
x⁻¹.right = x.right⁻¹The right component of the semidirect inverse is the inverse of the right component.
Show Lean proof
rfl
instance instGroupRightFoxSemidirect : Group (RightFoxSemidirect G) where
one := 1
mul := (· * ·)
inv := Inv.inv
mul_assoc x y z := by
apply RightFoxSemidirect.ext
· simp only [mul_left, mul_right, map_mul, add_mul, mul_assoc, add_assoc]
· simp only [mul_right, mul_assoc]
one_mul x := by
apply RightFoxSemidirect.ext
· simp only [mul_left, one_left, MonoidAlgebra.of_apply, zero_mul, zero_add]
· simp only [mul_right, one_right, one_mul]
mul_one x := by
apply RightFoxSemidirect.ext
· simp only [mul_left, one_right, map_one, one_left, add_zero, mul_one]
· simp only [mul_right, one_right, mul_one]
inv_mul_cancel x := by
apply RightFoxSemidirect.ext
· simp only [mul_left, inv_left]
rw [mul_assoc, ← map_mul, inv_mul_cancel, map_one, mul_one,
neg_add_cancel, one_left]
· simp only [mul_right, inv_right, inv_mul_cancel, one_right]The right Fox semidirect product carries the group structure induced by its right action.
def rightHom : RightFoxSemidirect G →* G where
toFun x := x.right
map_one' := rfl
map_mul' _ _ := rflThe right Fox semidirect construction defines a homomorphism from a right derivation.
@[simp]
theorem rightHom_apply (x : RightFoxSemidirect G) :
rightHom x = x.rightThe right projection homomorphism of a Fox semidirect product returns its right coordinate.
Show Lean proof
rfl