Timings for PinSn.v
Require Import Basics Types.
Require Import Truncations.Core Truncations.Connectedness.
Require Import Spaces.Int Spaces.Circle Spaces.Spheres.
Require Import Algebra.AbGroups.
Require Import Homotopy.HomotopyGroup.
Require Import Homotopy.HSpaceS1.
Require Import Homotopy.Hopf.
(** * We show that the nth homotopy group of the n-sphere is the integers, for n >= 1. *)
Local Open Scope wc_iso_scope.
Local Open Scope pointed_scope.
(** The fundamental group of the 1-sphere / circle. *)
Local Open Scope pointed_scope.
Theorem pi1_circle : Pi 1 [Circle, base] ≅ abgroup_Z.
(** We give the isomorphism backwards, so we check the operation is preserved coming from the integer side. *)
srapply Build_GroupIsomorphism'.
2: exact (equiv_tr 0 (loops [Circle, base])).
exact equiv_loopCircle_int.
Theorem pi1_s1 : Pi 1 (psphere 1) ≅ abgroup_Z.
apply groupiso_pi_functor.
(** The second homotopy group of the 2-sphere is the integers. *)
Definition ptr_loops_s2_s1 `{Univalence}
: pTr 1 (loops (psphere 2)) <~>* psphere 1
:= (licata_finster (psphere 1))^-1*.
Definition pi2_s2 `{Univalence}
: Pi 2 (psphere 2) $<~> abgroup_Z.
change (Pi 2 ?X) with (Pi 1 (loops X)).
refine (compose_cate (b:=Pi 1 (pTr 1 (loops (psphere 2)))) _ _).
1: exact (emap (Pi 1) ptr_loops_s2_s1).
(** For n >= 1, the nth homotopy group of the n-sphere is the integers. *)
Definition pin_sn `{Univalence} (n : nat)
: Pi n.+1 (psphere n.+1) $<~> abgroup_Z.
refine (_ $oE groupiso_pi_loops n.+1 (psphere n.+3)).
snapply (grp_iso_pi_connmap _ (loop_susp_unit (psphere n.+2))).
(* The (n+2)-sphere is (n+1)-connected, so [loop_susp_unit] is [n +2+ n]-connected. Since [n.+2 <= n +2+ n], we're done, after some [trunc_index] juggling. *)
apply (isconnmap_pred_add n.-2).
rewrite 2 trunc_index_add_succ.
change (IsConnMap (Tr (n +2+ n)) (loop_susp_unit (psphere n.+2))).
(* [conn_map_loop_susp_unit] *)