ProCGroups.FoxDifferential.Discrete.Naturality
The principal declarations in this module are:
relativeFreeFoxCoordinatesMapA homomorphism of coefficient groups pushes a relative Fox-coordinate vector forward. -relativeFreeFoxCoordinatesMap_applyPushing a relative Fox-coordinate vector alongφappliesgroupRingMap φto the selected coordinate. -relativeFreeGroupFoxDerivative_mapDomainRelative Fox derivatives are natural under coefficient push-forward. -relativeFreeGroupFoxDerivative_mapDomain_applyComponent form of coefficient-push-forward naturality for relative free-group Fox derivatives.
def relativeFreeFoxCoordinatesMap :
RelativeFreeFoxCoordinates (H := H) X → RelativeFreeFoxCoordinates (H := K) X :=
fun a x => groupRingMap φ (a x)A homomorphism of coefficient groups pushes a relative Fox-coordinate vector forward.
omit [DecidableEq X] in
@[simp]
theorem relativeFreeFoxCoordinatesMap_apply
(a : RelativeFreeFoxCoordinates (H := H) X) (x : X) :
relativeFreeFoxCoordinatesMap (X := X) φ a x = groupRingMap φ (a x)Pushing a relative Fox-coordinate vector along φ applies groupRingMap φ to the selected coordinate.
Show Lean proof
rfl
theorem relativeFreeGroupFoxDerivative_mapDomain (w : FreeGroup X) :
relativeFreeGroupFoxDerivative (H := K) X (φ.comp ψ) w =
relativeFreeFoxCoordinatesMap (X := X) φ
(relativeFreeGroupFoxDerivative (H := H) X ψ w)Relative Fox derivatives are natural under coefficient push-forward.
Show Lean proof
by
let delta : DifferentialHom (φ.comp ψ) (RelativeFreeFoxCoordinates (H := K) X) :=
{ toFun := fun w => relativeFreeFoxCoordinatesMap (X := X) φ
(relativeFreeGroupFoxDerivative (H := H) X ψ w)
map_mul' := by
intro u v
funext x
simp only [scalarCrossedAction_apply, relativeFreeGroupFoxDerivative_mul,
MonoidAlgebra.of_apply, Pi.add_apply,
Pi.smul_apply, smul_eq_mul, map_add, map_mul, groupRingMap_single,
groupRingScalar, MonoidHom.coe_comp, Function.comp_apply,
relativeFreeFoxCoordinatesMap] }
have hbasis :
∀ x : X, delta (FreeGroup.of x) = Pi.single x (1 : GroupRing K) := by
intro x
change
relativeFreeFoxCoordinatesMap (X := X) φ
(relativeFreeGroupFoxDerivative (H := H) X ψ (FreeGroup.of x)) =
Pi.single x (1 : GroupRing K)
funext y
by_cases hxy : x = y
· subst y
simp only [relativeFreeFoxCoordinatesMap_apply, relativeFreeGroupFoxDerivative_of,
Pi.single_eq_same, map_one]
· have hyx : y ≠ x := Ne.symm hxy
simp only [relativeFreeFoxCoordinatesMap_apply, relativeFreeGroupFoxDerivative_of,
Pi.single_eq_of_ne hyx, map_zero]
exact (congrFun
(congrArg CrossedHom.toFun
(relativeFreeGroupFoxHom_unique (H := K) X (φ.comp ψ) delta hbasis)) w).symm
theorem relativeFreeGroupFoxDerivative_mapDomain_apply (w : FreeGroup X) (x : X) :
relativeFreeGroupFoxDerivative (H := K) X (φ.comp ψ) w x =
groupRingMap φ (relativeFreeGroupFoxDerivative (H := H) X ψ w x)Component form of coefficient-push-forward naturality for relative free-group Fox derivatives.
Show Lean proof
by
have h := congrFun
(relativeFreeGroupFoxDerivative_mapDomain (H := H) (K := K) ψ φ w) x
simpa [relativeFreeFoxCoordinatesMap] using h