Integer matrices acting on tori, and straight loops #
A torus is a product ∀ i, AddCircle (p i) of additive circles. An integer matrix
A : Matrix κ ι ℤ acts by the continuous additive map Matrix.smulVecHom A (AddCircle p) from
ι → AddCircle p to κ → AddCircle p, sending x to k ↦ ∑ i, A k i • x i. For p = 1 these
are Mathlib's tori UnitAddTorus ι = ℝⁱ / ℤⁱ, and this is the map induced by the linear map
A : ℝⁱ → ℝᵏ.
For n : ι → ℤ, the straight loop TauCeti.torusLoop p n is the image in the torus of the
segment from 0 to (n i • p i)ᵢ: it winds n i times around the i-th circle. Integer
matrices act on these loops through Matrix.mulVec (Matrix.smulVecHom_comp_torusLoop). They are
the representatives used to compute the fundamental group and first homology of a torus
naturally in the matrix.
An integer matrix sends the straight loop of n to the straight loop of A *ᵥ n.