module Homotopy.Space.Torus where

The torus🔗

In classical topology, the two-dimensional torus may be defined as the product of circles, i.e., may be defined as Alternatively, the space may be presented as a CW complex, built by beginning with a point, attaching two 1-cells to form the wedge of two circles, and finishing by attaching a 2-cell.

Such a CW complex can be regarded as a higher inductive type, regarding the 0-cell as a constructor base, the two 1-cells as distinct paths base ≡ base, and the 2-cell as a square with its top and bottom edges attached to one of the 1-cells, and its left and right edge attached to the other.

data  : Type where
  base : 
  loopA : base  base
  loopB : base  base
  square : Square loopA loopB loopB loopA

The resulting HIT is equivalent to the product of two circles.

open is-iso

T²≃S¹×S¹ :   (  ×  )
T²≃S¹×S¹ = ua (T²→S¹×S¹ , is-iso→is-equiv iso-pf) where
  T²→S¹×S¹ :    × 
  T²→S¹×S¹ base = base , base
  T²→S¹×S¹ (loopA i) = loop i , base
  T²→S¹×S¹ (loopB j) = base , loop j
  T²→S¹×S¹ (square i j) = loop i , loop j

  S¹×S¹→T² :  ×   
  S¹×S¹→T² (base , base) =  base
  S¹×S¹→T² (base , loop j) = loopB j
  S¹×S¹→T² (loop i , base) = loopA i
  S¹×S¹→T² (loop i , loop j) = square i j

  iso-pf : is-iso T²→S¹×S¹
  iso-pf .inv = S¹×S¹→T²
  iso-pf .rinv (base , base) = refl
  iso-pf .rinv (base , loop j) = refl
  iso-pf .rinv (loop i , base) = refl
  iso-pf .rinv (loop i , loop j) = refl

  iso-pf .linv base = refl
  iso-pf .linv (loopA i) = refl
  iso-pf .linv (loopB j) = refl
  iso-pf .linv (square i j) = refl

Showing that the torus described as a HIT is equivalent to the product of two circles is Exercise 6.3 of the HoTT Book, but this exercise includes a warning that “the path algebra for this is rather difficult.” The brevity of the above proof – straightforward invocations of refl – is a testament to the strength of cubical methods.