Evaluating concatenations and reversals of generalized loops #
Mathlib's GenLoop.transAt i f g concatenates two generalized loops along the i-th cube
direction, running f on tᵢ ≤ 1/2 and g on tᵢ ≥ 1/2, each at double speed. Its defining
formula clamps the rescaled coordinate with Set.projIcc. This file states the two halves of
that formula without the clamp: on each half, the concatenation is f or g evaluated at the
point whose i-th coordinate is replaced by any a with the rescaled value. It also evaluates
the reversal GenLoop.symmAt i f, and reads Mathlib's HomotopyGroup.mul_spec,
HomotopyGroup.inv_spec and HomotopyGroup.one_def in the additive group
Additive (HomotopyGroup N X x).
Main declarations #
GenLoop.transAt_apply_of_le: on the first half,transAt i f grunsfat double speed.GenLoop.transAt_apply_of_lt: on the second half,transAt i f grunsgat double speed.GenLoop.symmAt_apply:symmAt i frunsfbackwards in thei-th direction.HomotopyGroup.ofMul_transAt,HomotopyGroup.ofMul_symmAtandHomotopyGroup.ofMul_const: concatenation, reversal and the constant loop inAdditive (HomotopyGroup N X x).
On the first half of the i-th direction, transAt i f g runs f at double speed.
On the second half of the i-th direction, transAt i f g runs g at double speed.
symmAt i f runs f backwards in the i-th direction.
Concatenation in the i-th direction is addition in Additive (HomotopyGroup N X x), with
the summands in the order of HomotopyGroup.mul_spec.
Reversal in the i-th direction is negation in Additive (HomotopyGroup N X x).
The class of the constant loop is zero in Additive (HomotopyGroup N X x).