module Algebra.Group.Homotopy where
Homotopy groupsπ
For positive
we can give the iterated loop space
a Group
structure, obtained by truncating the higher groupoid
structure that
is equipped with. We call the sequence
the homotopy groups of
but remark that the indexing used by Οβββ
is off by 1:
Οβββ 0 A
is the fundamental group
Οβββ : Nat β Typeβ β β Group β Οβββ n t = to-group omega where omega : make-group β₯ Ξ©βΏ (suc n) t .fst β₯β omega .make-group.group-is-set = squash omega .make-group.unit = inc refl omega .make-group.mul = β₯-β₯β-mapβ _β_ omega .make-group.inv = β₯-β₯β-map sym
As mentioned above, the group structure is given entirely by the
groupoid structure of types: The neutral element is refl
, the group operation
is path concatenation
, and the
inverses are given by inverting paths
.
omega .make-group.assoc = elim! Ξ» x y z i β inc (β-assoc x y z i) omega .make-group.invl = elim! Ξ» x i β inc (β-invl x i) omega .make-group.idl = elim! Ξ» x i β inc (β-idl x i)
Οβββ-ap : β {β} {A B : Typeβ β} n (e : A ββ B) β Οβββ n A Groups.β Οβββ n B Οβββ-ap n e = total-iso (β₯-β₯β-ap (Ξ©βΏ-ap (suc n) e .fst)) record { pres-β = elim! Ξ» q r β ap β₯_β₯β.inc (Ξ©βΏ-map-β n (Equivβ.toβ e) _ _) } Οβββ-map : β {β β'} {A : Typeβ β} {B : Typeβ β'} n (f : A ββ B) β β Οβββ n A β β β Οβββ n B β Οβββ-map n f = β₯-β₯β-map (Ξ©βΏ-map (suc n) f .fst) opaque Οβ-def : β {β} (A : Typeβ β) n β (β Οβββ n A β , inc refl) ββ Ξ©βΏ (suc n) (n-Trβ A (suc (n + 2))) Οβ-def A n = n-Tr-set βe n-Tr-Ξ©βΏ A 1 (suc n) .fst , n-Tr-Ξ©βΏ A 1 (suc n) .snd Οβ-def-inc : β {β} (A : Typeβ β) n β (l : β Ξ©βΏ (1 + n) A β) β Οβ-def A n Β· inc l β‘ Ξ©βΏ-map (1 + n) incβ Β· l Οβ-def-inc A n l = n-Tr-Ξ©βΏ-inc A 1 (suc n) Β·β l Οβ-def-β : β {β} (A : Typeβ β) n β (p q : β Ξ©βΏ (1 + n) A β) β Οβ-def A n Β· inc (p β q) β‘ Οβ-def A n Β· inc p β Οβ-def A n Β· inc q Οβ-def-β A = n-Tr-Ξ©βΏ-β A 1
A direct cubical transcription of the Eckmann-Hilton argument tells us that path concatenation for is commutative, independent of
Ξ©βΏβΊΒ²-is-abelian : β {β} {A : Typeβ β} (n : Nat) (p q : Ξ©βΏ (2 + n) A .fst) β p β q β‘ q β p Ξ©βΏβΊΒ²-is-abelian n p q = transport (Ξ» k β ap (Ξ» x β β-idr x k) p β ap (Ξ» x β β-idl x k) q β‘ ap (Ξ» x β β-idl x k) q β ap (Ξ» x β β-idr x k) p) (Ξ» i β (Ξ» j β p (j β§ ~ i) β q (j β§ i)) β (Ξ» j β p (~ i β¨ j) β q (i β¨ j)))
The proof can be visualized with the following diagram, where the
vertices are in
The outer rectangle shows p β q β‘ q β p
, which is filled by
transporting the two inner squares using β-idr
on p j
and β-idl
on
q j
. Note that β-idr refl
and
β-idl refl
are definitionally equal. In the two inner
squares, p j
and q j
are on different sides of
the path composition, so we can use the De Morgan structure on the
interval to have p
and q
slip by each
other.
Lifting this result through the set truncation establishes that is an Abelian group:
Οβββ-is-abelian-group : β {β} {A : Typeβ β} (n : Nat) β Group-on-is-abelian (Οβββ (1 + n) A .snd) Οβββ-is-abelian-group {A = A} n = elim! Ξ» x y i β inc (Ξ©βΏβΊΒ²-is-abelian n x y i)
We can give an alternative construction of the fundamental group for types that are known to be groupoids: in that case, we can avoid using a set truncation since the loop space is already a set.
module ΟβGroupoid {β} ((T , t) : Typeβ β) (grpd : is-groupoid T) where private mk : make-group (t β‘ t) mk .make-group.group-is-set = grpd t t mk .make-group.unit = refl mk .make-group.mul = _β_ mk .make-group.inv = sym mk .make-group.assoc = β-assoc mk .make-group.invl = β-invl mk .make-group.idl = β-idl on-Ξ© : Group-on (t β‘ t) on-Ξ© = to-group-on mk Οβ : Group β Οβ = to-group mk Οββ‘Οβββ : Οβ Groups.β Οβββ 0 (T , t) Οββ‘Οβββ = total-iso (inc , β₯-β₯β-idempotent (grpd _ _)) (record { pres-β = Ξ» x y β refl })