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]
Local Open Scope mc_mult_scope. Local Open Scope pointed_scope. (** ** Coherent H-space structures *) (** An H-space is coherent when the left and right identities agree at the base point. *) Class IsCoherent (X : pType) `{IsHSpace X} := iscoherent : left_identity pt = right_identity pt. Record IsCohHSpace (A : pType) := { ishspace_cohhspace : IsHSpace A; iscoherent_cohhspace : IsCoherent A; }. #[export] Existing Instances ishspace_cohhspace iscoherent_cohhspace. Definition issig_iscohhspace (A : pType) : { hspace_op : SgOp A & { hspace_left_identity : LeftIdentity hspace_op pt & { hspace_right_identity : RightIdentity hspace_op pt & hspace_left_identity pt = hspace_right_identity pt } } } <~> IsCohHSpace A := ltac:(make_equiv). (** A type equivalent to a coherent H-space is a coherent H-space. *)
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

IsCohHSpace X
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

IsCohHSpace X
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

IsHSpace X
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y
IsCoherent X
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

IsHSpace X
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

IsHSpace Y
apply ishspace_cohhspace; assumption.
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

IsCoherent X
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

ap f^-1 (ap (fun y : Y => sg_op y (f pt)) (point_eq f) @ left_identity (f pt)) @ eissect f pt = ap f^-1 (ap (sg_op (f pt)) (point_eq f) @ right_identity (f pt)) @ eissect f pt
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

ap f^-1 (ap (fun y : Y => sg_op y (f pt)) (point_eq f) @ left_identity (f pt)) = ap f^-1 (ap (sg_op (f pt)) (point_eq f) @ right_identity (f pt))
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X <~>* Y

ap (fun y : Y => sg_op y (f pt)) (point_eq f) @ left_identity (f pt) = ap (sg_op (f pt)) (point_eq f) @ right_identity (f pt)
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X -> Y
iseq: IsEquiv f

ap (fun y : Y => sg_op y pt) 1 @ left_identity pt = ap (sg_op pt) 1 @ right_identity pt
X, Y: pType
IsCohHSpace0: IsCohHSpace Y
f: X -> Y
iseq: IsEquiv f

left_identity pt = right_identity pt
apply iscoherent. Defined. (** Every loop space is a coherent H-space. *)
X: pType

IsCohHSpace (loops X)
X: pType

IsCohHSpace (loops X)
X: pType

IsHSpace (loops X)
X: pType
IsCoherent (loops X)
X: pType

IsHSpace (loops X)
apply ishspace_loops.
X: pType

IsCoherent (loops X)
reflexivity. Defined.