Built with Alectryon, running Coq+SerAPI v8.18.0+0.18.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Require Import WildCat. Require Import Pointed. 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. *) Section Pi1S1. Context `{Univalence}. Local Open Scope int_scope. Local Open Scope pointed_scope.
H: Univalence

Pi 1 [Circle, base] ≅ abgroup_Z
H: Univalence

Pi 1 [Circle, base] ≅ abgroup_Z
(** We give the isomorphism backwards, so we check the operation is preserved coming from the integer side. *)
H: Univalence

abgroup_Z ≅ Pi 1 [Circle, base]
H: Univalence

abgroup_Z <~> Pi 1 [Circle, base]
H: Univalence
IsSemiGroupPreserving ?f
H: Univalence

abgroup_Z <~> Pi 1 [Circle, base]
H: Univalence

abgroup_Z <~> base = base
H: Univalence
base = base <~> Pi 1 [Circle, base]
H: Univalence

abgroup_Z <~> base = base
H: Univalence

base = base <~> abgroup_Z
exact equiv_loopCircle_int.
H: Univalence

IsSemiGroupPreserving (equiv_composeR' equiv_loopCircle_int^-1 (equiv_tr 0 (loops [Circle, base])))
H: Univalence
a, b: abgroup_Z

equiv_composeR' equiv_loopCircle_int^-1 (equiv_tr 0 (loops [Circle, base])) (sg_op a b) = sg_op (equiv_composeR' equiv_loopCircle_int^-1 (equiv_tr 0 (loops [Circle, base])) a) (equiv_composeR' equiv_loopCircle_int^-1 (equiv_tr 0 (loops [Circle, base])) b)
H: Univalence
a, b: abgroup_Z

Circle_decode base (a + b) = Circle_decode base a @ Circle_decode base b
apply loopexp_add. Defined.
H: Univalence

Pi 1 (psphere 1) ≅ abgroup_Z
H: Univalence

Pi 1 (psphere 1) ≅ abgroup_Z
H: Univalence

Pi 1 (psphere 1) ≅ ?Goal
H: Univalence
?Goal ≅ abgroup_Z
H: Univalence

Pi 1 (psphere 1) ≅ Pi 1 [Circle, base]
H: Univalence

psphere 1 <~>* [Circle, base]
apply pequiv_S1_Circle. Defined. End Pi1S1. (** The second homotopy group of the 2-sphere is the integers. *) Section Pi2S2. Definition ptr_loops_s2_s1 `{Univalence} : pTr 1 (loops (psphere 2)) <~>* psphere 1 := (licata_finster (psphere 1))^-1*.
H: Univalence

Pi 2 (psphere 2) ≅ abgroup_Z
H: Univalence

Pi 2 (psphere 2) ≅ abgroup_Z
H: Univalence

Pi 2 (psphere 2) ≅ Pi 1 (psphere 1)
H: Univalence

Pi 1 (loops (psphere 2)) ≅ Pi 1 (psphere 1)
H: Univalence

Pi 1 (pTr 1 (loops (psphere 2))) ≅ Pi 1 (psphere 1)
H: Univalence
Pi 1 (loops (psphere 2)) ≅ Pi 1 (pTr 1 (loops (psphere 2)))
H: Univalence

Pi 1 (loops (psphere 2)) ≅ Pi 1 (pTr 1 (loops (psphere 2)))
apply grp_iso_pi_Tr. Defined. End Pi2S2. (** For n >= 1, the nth homotopy group of the n-sphere is the integers. *) Section PinSn.
H: Univalence
n: nat

Pi n.+1 (psphere n.+1) ≅ abgroup_Z
H: Univalence
n: nat

Pi n.+1 (psphere n.+1) ≅ abgroup_Z
H: Univalence

Pi 1 (psphere 1) ≅ abgroup_Z
H: Univalence
n: nat
Pi n.+2 (psphere n.+2) ≅ abgroup_Z
H: Univalence
n: nat

Pi n.+2 (psphere n.+2) ≅ abgroup_Z
H: Univalence

Pi 2 (psphere 2) ≅ abgroup_Z
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z
Pi n.+3 (psphere n.+3) ≅ abgroup_Z
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z

Pi n.+3 (psphere n.+3) ≅ abgroup_Z
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z

Pi n.+2 (loops (psphere n.+3)) ≅ abgroup_Z
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z

Pi n.+2 (loops (psphere n.+3)) ≅ Pi n.+2 (psphere n.+2)
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z

Pi n.+2 (psphere n.+2) ≅ Pi n.+2 (loops (psphere n.+3))
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z

IsConnMap (Tr (n.+2)%nat) (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. *)
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z

IsConnMap (Tr (n.-2 +2+ (n.+2)%nat)) (loop_susp_unit (psphere n.+2))
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z

IsConnMap (Tr (n.-2 +2+ trunc_index_inc (-2) n.+2).+2) (loop_susp_unit (psphere n.+2))
H: Univalence
n: nat
IHn: Pi n.+2 (psphere n.+2) ≅ abgroup_Z

IsConnMap (Tr (n +2+ n)) (loop_susp_unit (psphere n.+2))
exact _. (* [conn_map_loop_susp_unit] *) Defined. End PinSn.