Library UniMath.CategoryTheory.categories.Type.Univalence
Near-univalence of type_precat
Require Import UniMath.Foundations.UnivalenceAxiom.
Require Import UniMath.CategoryTheory.Core.Categories.
Require Import UniMath.CategoryTheory.Core.Functors.
Require Import UniMath.CategoryTheory.Core.Isos.
Require Import UniMath.CategoryTheory.Core.Univalence.
Require Import UniMath.CategoryTheory.categories.Type.Core.
Require Import UniMath.CategoryTheory.categories.Type.MonoEpiIso.
Local Open Scope cat.
Definition univalenceweq (X X' : UU) : (X = X') ≃ (X ≃ X') :=
tpair _ _ (univalenceAxiom X X').
Definition type_id_weq_iso (A B : ob type_precat) :
(A = B) ≃ (iso A B) :=
weqcomp (univalence _ _) (type_equiv_weq_iso A B).
Lemma type_id_weq_iso_is (A B : ob type_precat):
@idtoiso _ A B = pr1 (type_id_weq_iso A B).
Proof.
apply funextfun.
intro p; elim p.
apply eq_iso; simpl.
- apply funextfun; intro.
apply idpath.
Defined.
Lemma type_is_weq_idtoiso (A B : ob type_precat):
isweq (@idtoiso _ A B).
Proof.
rewrite type_id_weq_iso_is.
apply (pr2 (type_id_weq_iso A B)).
Defined.