Built with Alectryon. 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.
(** * Morphisms in a groupoid *)
Require Import Category.Core Category.Morphisms Category.Univalent GroupoidCategory.Core.
Require Import Trunc Equivalences HoTT.Tactics.

Set Implicit Arguments.
Generalizable All Variables.
Local Open Scope category_scope.

Section groupoid_category.
  Variable X : Type.
  Context `{IsTrunc 1 X}.

  Definition isotoid (s d : groupoid_category X)
  : s <~=~> d -> s = d
    := fun f => f : morphism _ _ _.

  (** ** All groupoids are categories *)
  
X: Type
IsTrunc0: IsTrunc 1 X

IsCategory (groupoid_category X)
X: Type
IsTrunc0: IsTrunc 1 X

IsCategory (groupoid_category X)
X: Type
IsTrunc0: IsTrunc 1 X
s, d: groupoid_category X

IsEquiv (idtoiso (groupoid_category X) (y:=d))
apply (isequiv_adjointify (@idtoiso (groupoid_category X) _ _) (@isotoid _ _)); repeat intro; destruct_head @Isomorphic; destruct_head @IsIsomorphism; compute in *; path_induction_hammer. Qed. End groupoid_category.