Built with Alectryon, running Coq+SerAPI v8.19.0+0.19.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.
(** * Morphisms in [set_cat] *)
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
fs: Funext X: set_cat C, D: PreCategory F, G: Core.Functor C D T1, T2: morphism set_cat X
(Build_HSet (NaturalTransformation F G)) H: forall (x : X) (y : C), T1 x y = T2 x y H0: IsIsomorphism T1
IsIsomorphism T2
fs: Funext X: set_cat C, D: PreCategory F, G: Core.Functor C D T1, T2: morphism set_cat X
(Build_HSet (NaturalTransformation F G)) H: forall (x : X) (y : C), T1 x y = T2 x y H0: IsIsomorphism T1
IsIsomorphism T2
exists (T1^-1)%morphism;
abstract (
first [ apply @iso_moveR_Vp
| apply @iso_moveR_pV ];
repeatfirst [ intro
| solve [ auto
| symmetry; auto ]
| apply @path_forall
| path_natural_transformation ]
).Defined.Sectionequiv_iso_set_cat.(** ** Isomorphisms in [set_cat] are equivalent to equivalences. *)Context `{Funext}.Definitionisiso_isequivsd (m : morphism set_cat s d)
`{IsEquiv _ _ m}
: IsIsomorphism m
:= Build_IsIsomorphism
set_cat s d
m m^-1%function
(path_forall _ _ (eissect m))
(path_forall _ _ (eisretr m)).Definitionisequiv_isisosd (m : morphism set_cat s d)
`{IsIsomorphism _ _ _ m}
: IsEquiv m
:= Build_IsEquiv
_ _
m m^-1%morphism
(ap10 right_inverse)
(ap10 left_inverse)
(fun_ => path_ishprop _ _).Definitioniso_equiv (sd : set_cat) (m : s <~> d)
: s <~=~> d
:= Build_Isomorphic
(@isiso_isequiv s d m _).
H: Funext s, d: set_cat
IsEquiv (iso_equiv s d)
H: Funext s, d: set_cat
IsEquiv (iso_equiv s d)
refine (isequiv_adjointify
(@iso_equiv s d)
(funm => Build_Equiv _ _ _ (@isequiv_isiso s d m m))
_
_);
simplin *;
clear;
abstract (
intros [? ?]; simpl;
unfold iso_equiv; simpl;
apply ap;
apply path_ishprop
).Defined.
H: Funext s, d: set_cat p: s = d
iso_equiv s d (equiv_path s d (ap trunctype_type p)) =
idtoiso set_cat p
H: Funext s, d: set_cat p: s = d
iso_equiv s d (equiv_path s d (ap trunctype_type p)) =
idtoiso set_cat p
H: Funext s, d: set_cat p: s = d
iso_equiv s d (equiv_path s d (ap trunctype_type p)) =
idtoiso set_cat p
H: Funext s, d: set_cat p: s = d
iso_equiv s s (equiv_path s s (ap trunctype_type 1)) =
idtoiso set_cat 1
reflexivity.Defined.Endequiv_iso_set_cat.Sectionequiv_iso_prop_cat.(** ** Isomorphisms in [prop_cat] are equivalent to equivalences. *)Context `{Funext}.Definitionisiso_isequiv_propsd (m : morphism prop_cat s d)
`{IsEquiv _ _ m}
: IsIsomorphism m
:= Build_IsIsomorphism
prop_cat s d
m m^-1%function
(path_forall _ _ (eissect m))
(path_forall _ _ (eisretr m)).Definitionisequiv_isiso_propsd (m : morphism prop_cat s d)
`{IsIsomorphism _ _ _ m}
: IsEquiv m
:= Build_IsEquiv
_ _
m m^-1%morphism
(ap10 right_inverse)
(ap10 left_inverse)
(fun_ => path_ishprop _ _).Definitioniso_equiv_prop (sd : prop_cat) (m : s <~> d)
: s <~=~> d
:= Build_Isomorphic
(@isiso_isequiv_prop s d m _).
H: Funext s, d: prop_cat
IsEquiv (iso_equiv_prop s d)
H: Funext s, d: prop_cat
IsEquiv (iso_equiv_prop s d)
refine (isequiv_adjointify
(@iso_equiv_prop s d)
(funm => Build_Equiv _ _ _ (@isequiv_isiso_prop s d m _))
_
_);
simplin *;
clear;
abstract (
intros [? ?]; simpl;
unfold iso_equiv_prop; simpl;
apply ap;
apply path_ishprop
).Defined.
H: Funext s, d: prop_cat p: s = d
iso_equiv_prop s d
(equiv_path s d (ap trunctype_type p)) =
idtoiso prop_cat p
H: Funext s, d: prop_cat p: s = d
iso_equiv_prop s d
(equiv_path s d (ap trunctype_type p)) =
idtoiso prop_cat p
H: Funext s, d: prop_cat p: s = d
iso_equiv_prop s d
(equiv_path s d (ap trunctype_type p)) =
idtoiso prop_cat p
H: Funext s, d: prop_cat p: s = d
iso_equiv_prop s s
(equiv_path s s (ap trunctype_type 1)) =
idtoiso prop_cat 1