Timings for HSpaceS1.v
Require Import Classes.interfaces.canonical_names.
Require Import Cubical.DPath Cubical.PathSquare.
Require Import Homotopy.Suspension.
Require Import Homotopy.HSpace.Core.
Require Import Homotopy.HSpace.Coherent.
Require Import Spaces.Spheres.
(** H-space structure on circle. *)
Definition Sph1_ind (P : Sphere 1 -> Type) (b : P North)
(p : DPath P (merid North @ (merid South)^) b b)
: forall x : Sphere 1, P x.
1: exact (merid South # b).
refine ((transport_pp _ _ _ _)^ @ _).
Definition Sph1_rec (P : Type) (b : P) (p : b = b)
: Sphere 1 -> P.
Definition Sph1_rec_beta_loop (P : Type) (b : P) (p : b = b)
: ap (Sph1_rec P b p) (merid North @ (merid South)^) = p.
rewrite 2 Susp_rec_beta_merid.
Definition s1_turn : forall x : Sphere 1, x = x.
exact (merid North @ (merid South)^).
by rewrite concat_Vp, concat_1p.
#[export] Instance sgop_s1 : SgOp (psphere 1)
:= fun x y => Sph1_rec _ y (s1_turn y) x.
#[export] Instance leftidentity_s1
: LeftIdentity sgop_s1 (point (psphere 1)).
#[export] Instance rightidentity_s1
: RightIdentity sgop_s1 (point (psphere 1)).
rewrite Sph1_rec_beta_loop.
#[export] Instance hspace_s1 : IsHSpace (psphere 1) := {}.
#[export] Instance iscoherent_s1 : IsCoherent (psphere 1) := idpath.
Definition iscohhspace_s1 : IsCohHSpace (psphere 1)
:= Build_IsCohHSpace _ _ _.
#[export] Instance associative_sgop_s1
: Associative sgop_s1.
apply (sq_flip_v (px0:=1) (px1:=1)).
exact (ap_nat' (fun a => ap (fun b => sgop_s1 b z)
(rightidentity_s1 a)) (merid North @ (merid South)^)).
#[export] Instance commutative_sgop_s1
: Commutative sgop_s1.
1: cbn; symmetry; apply right_identity.
1: exact (ap_nat' rightidentity_s1 _).